0

我正在尝试在用户登录后创建一个会话,以便在他们登录期间“登录”菜单项更改为“注销”。登录后,我的 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();
?>

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

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

谢谢。

4

3 回答 3

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

应该:

if($_SESSION['loggedin']===1)
于 2013-01-14T01:30:32.637 回答
1

登录:

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 页面中

于 2013-01-14T01:31:00.937 回答
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>";
            }

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

于 2013-12-01T16:36:27.367 回答