我只是使用PHP实现登录和注销系统,并遇到登出问题。系统大纲如下:
当用户登录时,会话创建一个会话变量" user"和" stud"因为我正在为学生和管理员创建它。
设置会话后,用户将被重定向到home.php文件。
在该文件中,会放置一个注销按钮。当用户点击注销按钮会话时销毁,但它同时销毁了这两个帐户。我尝试登录帐户,学生和管理员,但是当我尝试注销管理员时,它会销毁这两个帐户。
任何人都可以帮我解决这个问题吗?
这是我的admin logout编码:
在session_start(); if(!isset($ _ SESSION [' user'])){header(" Location: 的index.php&#34); } else if(isset($ _ SESSION [' user'])!=""){ 标题("位置:homeAdmin.php"); }
if(isset($ _ GET [' adminLogout'])){session_destroy(); 未设置($ _ SESSION ['用户']);标题("位置:index.php"); }
答案 0 :(得分:0)
您已为$_SESSION['user'] and $_SESSION['stud']
分别维护用户和管理员的会话
在注销过程中销毁相应的会话。意味着如果注销用户而不是仅销毁$_SESSION['user']
答案 1 :(得分:0)
if(isset($_GET['adminLogout'])) { session_destroy(); unset($_SESSION['user']); header("Location: index.php"); }
此处您正在使用参数admin logout并销毁用户会话。我假设您应首先检查设置了哪个会话并销毁该特定会话。也不要使用session destroy,只是unset将为你工作。 session_destroy会破坏所有会话,您可以在此处查看更多参考资料
答案 2 :(得分:0)
<?php
session_start();
if(!isset($_SESSION['user']))
{
header("Location: index.php");
}
else if(isset($_SESSION['user'])!="")
{
header("Location: homeAdmin.php");
}
if(isset($_GET['adminLogout']))
{
unset($_SESSION['user']);
header("Location: index.php");
}
?>
只需删除session_destroy()
即可