如何注销单个帐户?
Posted
技术标签:
【中文标题】如何注销单个帐户?【英文标题】:How can i logout single account? 【发布时间】:2017-05-07 14:09:49 【问题描述】:我只是使用 php 实现登录和注销系统,但遇到注销问题。系统大纲如下:
当用户登录时,会使用会话变量“user”和“stud”创建会话,因为我正在为学生和管理员创建会话。
会话建立后,用户被重定向到home.php文件。
在该文件中,放置了一个注销按钮。当用户单击注销按钮时会话被破坏,但它同时破坏了两个帐户。我尝试同时登录帐户,学生和管理员,但是当我尝试注销管理员时,它会破坏两个帐户。
谁能帮我解决这个问题?
这是我的管理员注销代码:
session_start(); if(!isset($_SESSION['user'])) header("位置: index.php"); 否则 if(isset($_SESSION['user'])!="") header("位置:homeAdmin.php"); if(isset($_GET['adminLogout'])) session_destroy(); 未设置($_SESSION['user']); header("位置:index.php");
【问题讨论】:
展示你的代码而不是解释它 请参考:How to Ask,下次显示minimal reproducible example。 【参考方案1】:您已分别维护用户和管理员的会话,例如 $_SESSION['user'] and $_SESSION['stud']
并在注销过程中销毁相应的会话。表示如果注销用户而不是仅销毁 $_SESSION['user']
【讨论】:
是的,我已经将它们分开,例如 $_SESSION['user'] 和 $_SESSION['stud']【参考方案2】:if(isset($_GET['adminLogout'])) session_destroy(); unset($_SESSION['user']); header("Location: index.php");
在这里,您正在使用参数 admin logout 并破坏用户会话。我假设您应该首先检查设置了哪个会话并销毁该特定会话。也不要使用会话销毁,只是 unset 会为你工作。 session_destroy 销毁所有会话,你可以在这里查看更多参考它是如何工作的
http://php.net/manual/en/function.session-destroy.php
【讨论】:
【参考方案3】:谢谢你们,我得到了我的答案。这里分享问题的答案:
<?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()
【讨论】:
以上是关于如何注销单个帐户?的主要内容,如果未能解决你的问题,请参考以下文章