在创建我的网站时,我被一个东西卡住了。
我应该使用$_COOKIE
还是会话。
我认为使用$_COOKIE
会更好。
但是我应该在cookie中存储什么用户的用户名还是用户的唯一id ?
我应该把cookie的时间往前放多少?
我应该在每个页面上转发相同的时间还是不同的时间?
最终归结为你的网站/应用程序是否需要无状态。(参见web服务是无状态的?)这主要是一个设计决策,但我更喜欢无状态的应用程序。
如果你使用cookie,这里有一些提示:
- 您希望在cookie中存储能够唯一标识用户的数据,但不能被猜测。
- 通常将
user_id
或username
(如果用户无法更改它)和随机散列存储在数据库中的行旁边。当涉及到登录用户时,通过用户的user_id
加载用户,并检查cookie中的哈希是否与数据库中的哈希匹配。 至于要存储多长时间,这取决于应用程序的性质。如果它包含敏感信息,那么让它持续很长时间可能不是一个好主意。您应该在用户每次请求页面时更新时间,这样如果用户正在使用该网站,他们将在访问期间保持登录状态。
不要将敏感信息放在cookie中,这一点非常重要,因为它们是以纯文本形式存储在用户计算机上的。
您没有提供任何有关您选择数据基板的原因的信息,也没有任何您试图实现的指示("php在登录后优化成员"-是毫无意义的废话)。
我应该使用$_COOKIE还是会话。
你想要存储多少数据?要多久?您需要在没有会话的情况下访问吗?如果是这样,数据是否需要可用?用户在你的网站上更改数据的影响是什么?
但是我应该在cookie中存储什么用户的用户名还是用户的唯一id ?
都不是-如果您的站点相信cookie中的断言,那么入侵您的站点就像更改cookie值一样简单。