如何为没有用户名的用户创建唯一的ID - PHP

时间:2012-04-15 04:45:05

标签: php login username unique-id

通常,当我开发与客户交互的网站时,我曾经使用他们的用户名或用户ID来保存他们的配置等等。但是现在我正在开发一个没有登录系统的网站,我需要保存一些东西,比如“喜欢”,“访问页面”等等。

我已尝试过互联网协议(IP),但当访问者在NAT或代理服务器下时,它将无法运行。

如何为每个用户创建一个唯一的ID并将其保存在我的数据库中?

顺便说一句,我正在使用PHP。

3 个答案:

答案 0 :(得分:2)

你应该使用cookies,ip和session的组合。

答案 1 :(得分:2)

如果您试图长期保存用户数据,这听起来像是灾难的秘诀。

我建议:

  1. 创建一个随机但唯一的哈希并将其保存到数据库中。
  2. 将哈希值设置为用户计算机上的cookie。
  3. 保存所有'喜欢','访问过的网页'等。以哈希的方式键入数据库。
  4. 当用户清除其浏览历史记录/ cookie并且现在无法检索该用户的活动时会出现问题,因为它全部基于该哈希值。

    我想一个解决办法就是用他们的哈希向用户发送一封电子邮件,并指导他们如何重新初始化他们的活动历史记录。

    您必须创建一个特殊页面,他们可以输入他们的哈希值,系统会重置其系统上的cookie。

答案 2 :(得分:1)

do { 
$uniqueID = uniqid(); 
$exists = mysql_num_rows('SELECT * FROM table WHERE id = $uniqueID');
} while ($exists == 1)

我使用类似的代码生成唯一的ID,它对我来说很好。或者,为了使其更简单,您可以使用uniqid()函数,该函数不应该真正生成两个相同的结果。