0

我是php的新手。

我刚刚了解到,您可以在用户登录后为其创建会话变量,例如

$_SESSION['id']=****some value(say 3)******;

并且只要他不注销(即您使用 session_destroy 清除此会话变量),就会维护此会话变量。

现在,我有一个困惑,如果另一个用户登录,那么这个id变量不会被覆盖,从而将前一个用户注销?如果这是真的,那么我能做些什么来解决它?

4

2 回答 2

1

PHP 会话通过唯一(随机)ID 字符串与用户绑定,该字符串在您第一次为用户调用 session_start() 时生成。该 ID 作为 cookie 存储在客户端浏览器中(或可能通过隐藏的表单字段/查询参数)。

即使在整个代码中都使用了 $_SESSION,该 $_SESSION 数组的 CONTENTS 也通过该 ID 字符串与特定用户相关联。这意味着如果我访问您的网站,$_SESSION 将包含我的详细信息。如果您点击您的网站,$_SESSION 将包含您的详细信息。

我的详细信息应该没有实用的方法可以在您的会话中“泄露”,反之亦然。销毁我的会话不会破坏您的会话,因为您的会话是完全不同的会话,具有不同的 ID。

于 2013-06-24T16:02:39.187 回答
0

所有会话都绑定到一个唯一的会话 ID。这通常设置在用户的 cookie 中。

于 2013-06-24T16:01:14.660 回答