首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >当用户注销时,我必须销毁会话吗?

当用户注销时,我必须销毁会话吗?
EN

Stack Overflow用户
提问于 2015-06-21 09:08:09
回答 3查看 290关注 0票数 2

我只在会话中存储登录的用户id。

当用户注销时,会话对我来说就变得无用了。我一定要毁了它吗?

这些是我用来启动和销毁会话的Utils类的方法。

代码语言:javascript
代码运行次数:0
运行
复制
static function sessionSecureStart()
{
    if (session_status() == PHP_SESSION_NONE) {
        session_start();
    }
}

static function sessionSecureDestroy()
{

    //Utils::sessionSecureStart(); This part is for testing only

    if (session_status() == PHP_SESSION_ACTIVE) {
        $_SESSION = [];
        session_destroy();
    }

}

有时我会随机地收到像SESSION could not be destroyed....这样的错误/警告,我是不是做错了什么?

(我使用的是PHP/5.5.25)

EN

回答 3

Stack Overflow用户

发布于 2015-06-21 09:30:24

你不必销毁整个会话,只需unset你不需要的部分。比方说,当用户登录时,您设置了$_SESSION['user_id'],并且所有内容都显示为I is logged in,将查找该变量。一个简单的unset($_SESSION['user_id']);,突然用户就被注销了。请记住,您的用户无法控制会话中的内容。

另一种选择是set the session cookies to very low lifetimes。它更粗糙,但同样有效。

票数 2
EN

Stack Overflow用户

发布于 2015-06-21 09:23:42

我强烈建议您销毁会话。为了安全性和性能。

通常情况下,会话数据保存在服务器上的临时文件和浏览器上的cookie中,这个文件只包含会话id而不包含数据。

当您调用会话销毁时,您将删除此文件,但您也可以通知浏览器删除会话cookie (发送一个具有相同名称的cookie,该cookie已在过去过期)。您可以知道调用session_name()函数的名称(通常是PHPSESSID)。

票数 0
EN

Stack Overflow用户

发布于 2015-06-21 09:32:15

当用户注销时,会话对我来说变得无用了。我一定要毁了它吗?

是。除了销毁它之外,生成一个新的session-id也很有帮助

有时我会随机收到错误/警告,如会话无法被销毁……我做错了什么吗?

您不能销毁尚未启动的会话。在尝试销毁session_start();之前,请确保您已成功启动它的会话

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30960343

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档