2014-04-20 55 views
0

我建我的网页这样的隐藏/显示元素:PHP:当访问者访问某些网页

<?php 
    include ('header.html'); 

?> 

<p> bla bla bla </p> 

<?php 

include ('footer.html'); 

?> 

我使用会话在header.html中来跟踪用户的记录。 header.html有三个标签,左边是logo,中间是search_form,右边是登录/注册按钮

现在,问题是我想隐藏search_form DIV在中间通过在header.html文件中使用php,当互联网用户(未注册的成员)访问某个页面时,例如register.php,因为这个DIV不是必需的。

注:我想用PHP来控制它,但不是JavaScript或其他任何东西。

你能帮助我吗?

感谢

+0

在头文件中设置一个布尔标志,或者将它存储在会话中,并将它用于div周围的“if”。 – dognose

+0

它应该是一个PHP页面不是HTML @dognose –

回答

0

更改header.html页面header.php

in header.php检查当前用户是否为注册用户然后显示搜索div或 检查当前页面是否由您的浏览器网址并决定是否要显示搜索div。

您可以使用会议header.php

示例代码来获取当前用户信息:

的header.php

session_start(); 
if(isset($_SESSION['current_user'])){ //check register user 
// show div 
} 
else { 
$page= $_REQUEST['current_url']; // get current page 
if($page == 'register.php' || $page == 'whatever'){ //check pages where you are not show search page 
    echo ''; 
    } 
    else { 

    //show div 
    } 

} 
+0

我试过你和这一个:if(isset($ _ SESSION ['user_id'])&&(basename($ _ SERVER ['PHP_SELF'])=='register.php' )){ echo''; } else {//显示DIV}。但它不起作用。请任何其他想法? –

0

你可以使用$ _ SERVER [ 'REQUEST_URI'],以检查目前的网址是,例如'register.php'。例如:

<? php 
    if ($_SERVER['REQUEST_URI'] == 'mysite.com/register.php'): 
     include ('register_form.php'); 
?> 

当然,这只会在url匹配的时候才起作用,查询字符串会破坏它。但你得到了一般想法。

研究使用PHP创建会话和用户认证。

+0

这不起作用,因为我试过。我也试过建立$ _SESSION ['view'] = $ _SERVER ['REQUEST_URI'];那么我使用if(isset($ _ SESSION ['view'])=='mysite.com/register.php'){echo'something';}。但是,它仍然不起作用。 –

0
<!doctype html> 
<html lang="en"> 
<head> 
    <meta charset="utf-8"> 
</head> 
<body> 
    <?php 
    session_start(); 

    $_SESSION['view'] = $_SERVER['REQUEST_URI']; 

    if(isset($_SESSION['view']) && $_SESSION['view'] == '/test/index.php') { 
    ?> 
    <div>head</div> 
    <?php } ?> 
    body here 
    <div>footer</div> 

</body> 
</html> 

这是我的示例工作,这是正常工作。如果我的url不等于/test/index.php它不会显示头像。您可以根据此演示工作设置您自己的逻辑。我认为它可以帮助你。

+0

它的工作原理。但是,当我浏览这个register.php旁边的其他页面时,它也被隐藏了。我想这个问题仍然在$ _SERVER ['REQUEST_URI'] –

0

我试过并尝试过,发现了解决方案。现在,我可以与大家分享:

if((isset($_SESSION['current_user'])) || (basename($_SERVER['PHP_SELF']) != 'register.php')){ 

// show the search_form DIV 

} 

感谢您的贡献!