0

关于让多个用户同时登录的存储会话,我有点困惑......会话密钥必须是唯一的还是只是值?如果所有的 $userIds 都是唯一的,这样可以吗?

//if the user logs in:
$_SESSION['loggedIn'] = $userId;

在测试这一点时,如果您同时有两个使用单独的 $userIds 登录并尝试将数据输入到数据库中,则会导致错误。密钥应该是随机的#吗?暂时不用担心安全问题。

4

2 回答 2

1

$_SESSION 向量是 PHP 的 [Session management] 的一部分:

PHP 中的会话支持包括一种在后续访问中保留某些数据的方法

它基本上让您以每个会话的方式存储信息,并在同一会话的后续调用中检索相同的信息。

每个会话都有自己的数据集。

PHP 使用 cookie 或 POST/GET 参数来识别每个会话,从而确定当前调用是否是现有会话的一部分,并为您提供您在先前调用中存储的数据。

session_start() 根据通过 GET 或 POST 请求或通过 cookie 传递的会话标识符创建会话或恢复当前会话。

有关更多信息,请查看手册中的这些主题:

于 2012-12-07T02:28:09.133 回答
0

$_SESSION存储在服务器端,不是跟踪用户的好方法,因为会话可以在短时间不活动后终止。如果可能的话,你最好使用 cookie。

但是为了解决您的具体问题,您的代码应该可以正常工作,因为会话几乎总是唯一的。

于 2012-12-07T02:15:53.610 回答