我有几个关于会话和登录/注销系统的问题。PHP会议登录系统问题!
在我的系统中,首先检查用户数据(用户名和密码)是否正确。如果是这样,我正在注册一个会话:$_SESSION['loggedin'] = 1
然后我假设已经登录,我总是检查是否$_SESSION['loggedin']
1或不。
但是,我最近观察到,在其中一个用户登录后,让他们转到他们的页面:/profile.php?u=newuser
,但是当他们在他们自己的页面中时,如果他们恰好将url更改为:/ profile.php?u=newuser2
我的系统假设newuser2现在已经被登录了:(我怎样才能解决这个问题?最好和最安全的登录用户的方式是什么?
最后,会按照下面的方式工作吗?假设我注册了$_SESSION['username'] = $username;
在这里$ username data是从数据库检索,为了理解一个用户登录或不,我总是从数据库中检索用户名,并检查$_SESSION['username'] == username
。这是合乎逻辑的吗?总是从数据库获取用户名是否有效?
你并不需要通过周围的用户名中的URL。只需在会话中将其存储在登录时,并检查会话是否设置了用户名,而不是1,则在会话中将该值用作用户名(如果存在)。 – Orbling 2011-05-09 01:25:16