存储会话和并发

时间:2012-12-07 02:10:53

标签: php multithreading concurrency

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

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

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

2 个答案:

答案 0 :(得分:1)

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

  

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

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

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

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

  

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

有关详细信息,请查看手册中的以下主题:

答案 1 :(得分:0)

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

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