如果用户已登录,则更改PHP菜单链接

时间:2013-03-21 13:18:30

标签: php

我需要一些帮助,让我的导航栏替换登录用户登录的登录链接。我试过这段代码:

<?php   
    if(isset($_SESSION['username'])) {
        echo '<li><a href="logout.php"><span>Log Out</span></a></li>';
    } else {
        echo '<li><a href="login.php"><span>Log In</span></a></li>';
    } 
?>  

但它不起作用。它仍然显示我的导航栏上的登录按钮 我在nav.php中插入了代码 我的nav.php中的代码看起来像这样

<div id='cssmenu'>
    <ul>  

        <?php include('include\menuspace.php'); ?>  

        <li><a href='index.php' id='framside' onclick='changeDiv('1')'><span>Framsida</span></a></li>  

        <li><a href='skolen.php' id='skulen'><span>Skulen</span></a></li>  

        <?php include('include\ifnotie.php'); ?>
        <?php include('include\ifie.php'); ?>  

        <li><a href='elevar.php' id='elevrådet' onclick='changeDiv('3')'><span>Elevrådet</span></a></li>  

        <li><a href='ledelsen.php' id='ledelse' onclick='changeDiv('4')'><span>Ledelse</span></a></li>  

        <li><a href='kontakt.php' id='kontakt' onclick='changeDiv('5')'><span>Kontakt</span></a></li>  

        <?php if(isset($_SESSION['username'])) {
        echo '<li><a href="logout.php"><span>Log Out</span></a></li>';
        } else {
        echo '<li><a href="login.php"><span>Log In</span></a></li>';
        } ?>  

    </ul>
</div>  

nav.php是一个单独的文件,我使用代码<?php include'(include/nav.php)'; ?>
在每个需要导航栏的php文件中。

这是一个 Print Screen of access controlled page要求您登录才能看到。

---编辑---

我确实喜欢LotusH说,要将if(isset($_SESSION['username']))更改为if(isset($_SESSION['name_of_user']))

直到我点击退出按钮才有效。然后它不会改回登录。

--- EDIT-19.04.2012 ----

修复了注销更改为登录的问题,必须放入session_destroy();

2 个答案:

答案 0 :(得分:1)

根据var_dump($_SESSION)

的输出
array(3) { 
   ["name_of_user"]=> string(13) "Administrator" 
   ["email_of_user"]=> string(19) "ikt-kons-ost@hfk.no" 
   ["usr_7fe2869648"]=> string(13) "Administrator" 
} 

在你的评论中 您应该将if(isset($_SESSION['username']))重写为if(isset($_SESSION['name_of_user']))

答案 1 :(得分:0)

首先检查start是否session? 如果没有,请在顶部写下session_start();

然后尝试这段代码:

<?php   
    if(isset($_SESSION['username']) and $_SESSION['username']!='') {
        echo '<li><a href="logout.php"><span>Log Out</span></a></li>';
    } else {
        echo '<li><a href="login.php"><span>Log In</span></a></li>';
    } 
?>