使用PHP会话更改更改html菜单项

时间:2013-01-14 01:29:13

标签: php

我正在尝试在用户登录后创建会话,以便“登录”菜单项在登录时更改为“注销”。登录后,我的success.php文件运行只是

<?php
    session_start();
    $_SESSION['loggedin'] = 1;
?>

现在我有菜单

<?php
if($_SESSION['loggedin']=1)
echo '<a href="logout.php">Logout</a>';
else
echo '<a href="login.html">Login</a>';
?>

我还有一个只有

的注销页面
<?php
    session_start();
    session_destroy();
?>

这里发生的事情是,默认情况下,即使用户尚未登录创建会话,也会显示注销选项而不是登录。

我不确定这是否是处理此问题的正确方法,但非常感谢一些建议。

感谢。

3 个答案:

答案 0 :(得分:2)

if($_SESSION['loggedin']=1)

应该是:

if($_SESSION['loggedin']===1)

答案 1 :(得分:2)

登录:

if username and password is ok {

session_start();
$_SESSION['loggedin'] = "something";

}

对于菜单

  if(isset($_SESSION['loggedin'])) {
    echo "<a href="logout.php"> logout </a>";
    } else {

    echo "<a href="login.php"> login </a>";
    }

好的,为了在更改页面时记住会话,您应该创建一个名为session.php的文件并存储以下代码。

<?php 

    session_start();

     if(isset($_SESSION['loggedin']) && !empty($_SESSION['loggedin'])) {

     return true;
     }else {
     return false;
     }
     }

 ?>

现在,在每个.php页面中包含此页面

答案 2 :(得分:0)

对于菜单你可以这样做

if(isset($_SESSION['user_email']))
            {
            print "<span class=\"userg1\"><strong>".$user."</strong></span>&nbsp";
            print "<form method=\"link\" action=\"logout.php\">
            <input type=\"submit\" name=\"Log Out\" value=\"Log Out\" class=\"f1\"/>&nbsp;
            </form>";
            }
            else
            {
            print "<form method=\"link\" action=\"formvu.php\">
            <input type=\"submit\" name=\"log In\" value=\"Register\" class=\"f1\"/>&nbsp;
            </form><form method=\"link\" action=\"login2.php\">
                <input type=\"submit\" name=\"log In\" value=\"Log In\" class=\"f1\"/>&nbsp;
                </form>";
            }

但是在页面的开头加载整页之前检查会话