这是一个非常广泛的问题;我只是在寻找最好的方法。
我希望能够区分 unique user
。我需要能够跟踪用户何时访问特定页面。
以下是我和其他人遇到的问题:
IP address
无效,因为IP address
上可能有许多计算机COOKIES
会遇到问题。SESSIONS
会遇到问题。我正在考虑这三者的组合,但我仍然非常确定这不会抓住所有例外情况。我需要一个类似 Youtube 跟踪视频观看方式的系统。
有没有人对此有任何其他想法? (除了实现用户系统)
答案 0 :(得分:2)
不使用cookies /要求用户登录以识别自己 - 确定他们是否是" unique"是不是几乎不可能。有几种方法可以提供帮助,但两种方法都无法保证:
您可以使用PHP Sessions - 无需实际的用户管理系统"。
session_start();
$id = session_id();
这样做的好处是,只要会话保持活动状态,您就可以跟踪当前用户。
缺点是,您无法确定"新用户"是否是唯一与否,如果它是一个会话已经清除的老用户(就像用户已经清除了他们的cookie一样)。
另一种方法,也就是与仅使用IP地址相同的方法,是尝试使用$_SERVER
环境信息中不同变量的最佳指纹识别算法:
$userFingerprint = $_SERVER['REMOTE_ADDR'] . ':' . $_SERVER['HTTP_USER_AGENT'] . ':' . $_SERVER['HTTP_ACCEPT']; // plus any others you might find helpful
这样做的好处是,可能有足够的数据来区分同一网络上的用户。
明显的缺点是,可能没有足够的数据来区分同一网络上的用户。
答案 1 :(得分:1)
我认为,没有任何绝对的方法可以做到这一点。用户可以更改IP地址,删除或更改cookie等,因为他们可以使用everthing。
但根据您计划的系统(民意调查,计数器),您可以开发一种确定唯一用户的方法。例如,要开发一个轮询系统,您可以将ip,http_user_agent插入数据库,同时为了提高质量,您可以设置一些cookie。
答案 2 :(得分:0)
另一种方法可能是在数据库中创建一个捕获以下数据的表:
然后,您可以将其缩小并说:“在此特定浏览器上使用此特定操作系统的特定IP地址的用户在此特定时间下载了此图像。”
这是你想要达到的目标吗?