2013-06-24 47 views
0

我是php的新手。在php中管理多个用户

我刚刚得知你能为他登录如

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

在用户创建一个会话变量,只要这个会话变量保持,因为他不注销(即你清楚这个会议使用session_destroy变量)。

现在,我有一个混淆,如果另一个用户登录然后将不会覆盖这个id变量,从而记录以前的用户? 如果这是真的,那么我能做些什么来解决它?

回答

0

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

+0

:那么服务器如何区分每个用户的'id'会话变量。即使我们没有编写代码来创建cookie,它是否会自动发送给用户使用它的Cookie? –

1

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

即使在整个代码中使用$ _SESSION,该$ _SESSION数组的内容都通过该ID字符串绑定到特定用户。这意味着如果我打你的网站,$ _SESSION将包含我的细节。如果你打你的网站,$ _SESSION将包含你的详细信息。

对于我的细节,您的会话中“泄露”应该没有实际的方法,反之亦然。销毁我的会话不会破坏你的会话,因为你是一个完全不同的会话,具有不同的ID。

+0

:谢谢,一个完美的答案,很容易理解。 –