如何设置我的登录系统?

时间:2010-07-04 00:18:23

标签: php mysql login session cookies

我正在试图弄清楚将用户的数据存储在会话cookie(如密码,用户名等)中是否更好,并且只有当我从PHP更改MYSQL数据库时才更新该cookie,

OR

将用户的用户名和用户ID存储在会话cookie中,并在每次需要获取用户数据时联系MYSQL数据库。

哪一个更好的方法..?我从来没有真正建立过登录系统,所以任何建议都会非常感激。

3 个答案:

答案 0 :(得分:2)

会话和cookie不一样。会话只是将其会话ID存储在cookie(客户端)和服务器上的所有会话数据中。我认为你真的是指使用“cookie”这个词的会话。

继续回答您的实际问题,在会话中存储大多数用户详细信息是完全正确和安全的。您永远不需要在会话中存储密码,因为您仅将其用于身份验证。除此之外,理想的做法是在会话中缓存经常使用的用户数据(您可能在每个页面上显示的内容)以保存到数据库的行程。

Chris提到的问题 - 用户数据的变化 - 几乎不存在,因为除了用户本人之外,任何人都不会修改用户数据,在这种情况下,您可以与DB一起更新会话。

答案 1 :(得分:1)

好问题。我在PHP会话中保留了用户数据。由于这是所有服务器端,因此应该是安全的,并且避免额外的数据库查找。

缺点是您不会自动获取在该会话期间发生的数据库更改...但用户数据通常不是那么动态,我很在乎。

答案 2 :(得分:1)

您不应该在密码中存储密码。我会将详细信息存储在数据库中,并使用memcached来减少数据库的负载。