我正在尝试在用户登录后创建会话,以便“登录”菜单项在登录时更改为“注销”。登录后,我的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();
?>
这里发生的事情是,默认情况下,即使用户尚未登录创建会话,也会显示注销选项而不是登录。
我不确定这是否是处理此问题的正确方法,但非常感谢一些建议。
感谢。
答案 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> ";
print "<form method=\"link\" action=\"logout.php\">
<input type=\"submit\" name=\"Log Out\" value=\"Log Out\" class=\"f1\"/>
</form>";
}
else
{
print "<form method=\"link\" action=\"formvu.php\">
<input type=\"submit\" name=\"log In\" value=\"Register\" class=\"f1\"/>
</form><form method=\"link\" action=\"login2.php\">
<input type=\"submit\" name=\"log In\" value=\"Log In\" class=\"f1\"/>
</form>";
}
但是在页面的开头加载整页之前检查会话