Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP,如何注销帐户?会话有帮助吗?_Php_Html_Session_Session Variables_Logout - Fatal编程技术网

PHP,如何注销帐户?会话有帮助吗?

PHP,如何注销帐户?会话有帮助吗?,php,html,session,session-variables,logout,Php,Html,Session,Session Variables,Logout,如何在我的系统中对帐户注销进行编码。我使用header()将其返回到索引页,并销毁所有存在的会话变量。它会破坏会话,但会返回到上一页,没有会话变量(如用户名)。我的网站的此注销模块的最佳方法是什么?您只需清空$\u会话这或多或少就是我所做的: 在显示每个需要有效登录的页面之前,都会在数据库中检查有效的会话变量以及相应的活动登录会话记录。如果不满足这些条件,用户将被重定向并发出错误警报 <a href='logout.php'>Logout</a> 编辑:在需要登录的页面

如何在我的系统中对帐户注销进行编码。我使用header()将其返回到索引页,并销毁所有存在的会话变量。它会破坏会话,但会返回到上一页,没有会话变量(如用户名)。我的网站的此注销模块的最佳方法是什么?

您只需清空
$\u会话

这或多或少就是我所做的:

在显示每个需要有效登录的页面之前,都会在数据库中检查有效的会话变量以及相应的活动登录会话记录。如果不满足这些条件,用户将被重定向并发出错误警报

<a href='logout.php'>Logout</a>
编辑:在需要登录的页面顶部,我会有如下内容:

session_start();
if (empty($_SESSION["loginCode"]) || empty($_SESSION["userCode"]))
    header('index.php?alert=Invalid session');

在我的例子中,我还检查了在登录期间创建的许多其他会话变量的存在,并且还检查了会话值与数据库的一致性。(我将所有测试放在一个函数中,例如,
isValidSession()
,该函数返回true或false,我可以在需要时轻松地将其包含在每个页面上。)

“但它返回到上一页时没有会话变量(例如用户名)”–为什么它会有这样的值,当用户只是非常明确地注销时…?不清楚您想要什么。是否要在销毁会话后继续记住用户名?我注销时要做的是在MySQL数据库中记录我的注销时间等,然后取消设置并销毁整个会话,并删除会话cookie。如果没有有效的会话存在,需要会话信息的其他页面应返回错误警报或重定向到某个页面。嗨,Stefan!这样一个伟大的帮助:)我只是想显示一个无效的页面,如果我想点击浏览器上的“后退”按钮,说“你已经退出网站/注销”,所以最好的事情是在每个页面我将需要一个会话变量?谢谢-我对我的文章进行了编辑。在登录期间必须显示的页面上,我会在顶部检查有效会话。如果该检查返回false,您可以重定向到所需的消息页面,或者显示警报并隐藏页面的其余部分,或者执行任何您想执行的操作。
session_start();
if (empty($_SESSION["loginCode"]) || empty($_SESSION["userCode"]))
    header('index.php?alert=Invalid session');