如何注销单个帐户?

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()

【讨论】:

以上是关于如何注销单个帐户?的主要内容,如果未能解决你的问题,请参考以下文章

如何从ios中的谷歌帐户注销?

显示多个帐户的 Msal 注销

如何使用 web3.js 注销 MetaMask 帐户

如何通过 Google Ads API 获取已注销的帐户?

如何使用以太坊从reactjs中的metamask帐户注销

Realm js - 注销时如何隐藏以前的用户帐户数据