我有一个管理面板和用户面板。两者都有一个Logout链接。当我登录管理面板时,我同时以用户身份登录。所以两人都有一个会议。
但是当我从管理面板注销时,它也会从用户面板中记录下来。为什么要从用户注销。我做了单独的登录会话。
管理员和用户的登录会话:
$_SESSION['admin_u'] = $admin_uname;
$_SESSION['admin_pass'] = $admin_pass2;
和
$_SESSION['uname'] = $uname;
$_SESSION['pass'] = $pass;
管理员退出代码:
<?php
if(isset($_SESSION['admin_u']) && isset($_SESSION['admin_pass'])) {
session_unset($_SESSION['admin_u']);
session_unset($_SESSION['admin_pass']);
session_destroy();
header( "Location:../index.php" );
exit();
} else {
header("Location:../membersignin.php");
exit();
}
?>
用户退出代码:
<?php
if(isset($_SESSION['uname']) && isset($_SESSION['pass'])) {
session_unset($_SESSION['uname']);
session_unset($_SESSION['pass']);
session_destroy();
header( "Location:../../index.php" );
exit();
} else {
header("Location:../../membersignin.php");
}
?>
我的代码有什么问题吗?
答案 0 :(得分:3)
<强> session_destroy()
强>
session_destroy - 销毁注册到会话的所有数据
这被调用意味着会话,用户和管理员都被销毁。你应该只是取消设置你不想要的会话变量而不是破坏会话,如果你不想从两者中注销的话。
此外,您错误地使用了 session_unset()
。 session_unset()函数释放当前注册的所有会话变量。请改用简单的 unset()
。
答案 1 :(得分:1)
session_unset清除所有会话...而不仅仅是一个变量..使用
unset($_SESSION['admin'])
更多信息: