如何为访客创建个人资料?

时间:2010-04-14 15:11:06

标签: php

我正在制作一个网站,并允许客人投票/评论。我该如何存储用户信息?

如果有人删除了cookie,我不希望清除这些信息(我想通过cookie处理访客用户)。如果有人清除cookie并立即更改ip,那么只有访客用户信息应该丢失。

我应该在php中使用会话吗?

3 个答案:

答案 0 :(得分:0)

Cookie可以比会话存储更长时间。当浏览器窗口关闭时,会话将会消失。

答案 1 :(得分:0)

使用SQL数据库是您拥有保留在服务器上的数据的唯一方式,并且可以被其他用户查看。你已经知道MySQL很受欢迎但是如果你没有任何可用的数据库,SQL Lite是一个不错的选择,它不需要你在服务器上安装任何东西,只需在PHP中启用SQL Lite。

在数据库中创建'users'表,将密码存储为SHA-256哈希值(不是raw,而不是MD5)。当他们登录时通过session_start()使用PHP会话,并且在成功登录后确保也使用session_regenerate_id()(它可以阻止用于窃取登录的已知漏洞利用)。

PHP会话被认为是实现登录的一种简单而安全的方式,尝试使用您自己的cookie手动重新发明轮子将导致安全问题并为您做更多工作。

答案 2 :(得分:0)

为了可靠地保存用户信息,您应该使用基于cookie等的某种用户ID将其存储在您的服务器上.Php会话仅支持会话,因此有助于在会话中保持身份。一旦用户关闭浏览器并再次启动它,PHP会话可能就会消失。同样,cookie也可能会消失。

然而,依靠IPv4地址并不会让你走得太远。即使忽视动态IP地址上的人(每次他们访问互联网时他们都有不同的IP),也有很多人通过NAT共享IP。您不想为整个办公室分享用户吗?

简而言之,除了普通的cookie之外,您还可以使用PHP会话(如果用户禁用了cookie),但如果他是匿名的并且他决定删除他的cookie,则无法获得他的身份。请记住,在水下PHP会话通过cookie工作(并且仅在禁用cookie时回退请求参数)