我正在开发一个应用程序来存储使用set_cookie()访问我网站的访问者。但是在开发该应用程序时,我对该问题进行了第二次考虑,如果用户是来自另一个系统的访问,我该如何跟踪他。
困惑我的意思是什么?
别担心,我会解释。
让我们想象一个人通过一个系统访问我的网站,我的代码将识别这个人,并将他的IP地址存储到数据库中并算作新用户。没问题。但是这个人正在访问另一个电脑/手机/标签,它也算作新用户。
我不想使用登录系统。 有什么方法可以防止这种情况吗?有什么想法吗?
答案 0 :(得分:2)
使用Cookie识别唯一身份用户,然后跟踪上次访问PHP页面的时间。然后提出一个超时机制 - 例如,如果他们在15分钟内没有访问过一个页面,那么就会从计数中删除它们。
答案 1 :(得分:1)
只有一种方法可以实现而不会使隐私变得愚蠢。提供身份验证机制,以便只有登录的用户才能看到您的站点。这样,您将获得信息。
如果您不想创建单独的用户ID和密码并维护它们,请使用类似OpenID的内容,这样如果用户希望识别自己,他就会这样做。
在世界某些地方尝试识别未经协议的用户可能是非法的。
答案 2 :(得分:1)
你无法检测到一个人只有你可以检测到ip地址..但是如果你建立了一个记录系统,那么你可以正确地检测到人,无论他记录的是什么机器......如果你使用ip,你只能获得意思关于人们导航到您网站的数量的价值
答案 3 :(得分:0)
您只能通过登录系统,您或其他人可靠地跟踪唯一身份用户。 IP地址通常是动态分配的,因此同一设备上的同一用户下次访问时将拥有不同的IP。
答案 4 :(得分:0)
您只需显示您的用户数即可。或者,如果您的站点不包含用户登录工具,那么除了IP地址之外没有别的办法,那就是代码
$log = 'count.log';//create a log file name count
$IP = getenv (REMOTE_ADDR);// get ip address
$add = true;
$hits = 0;
if (!file_exists ($log)) {
echo "Error: $log does not exist.";
exit;
}
$h = fopen ($log, 'r');
while (!feof ($h)) {
$line = fgets ($h, 4096);
$line = trim ($line);
if ($line != '')
$hits++;
if ($line == $IP)
$add = false;
}
fclose($h);
if ($add == true) {
$h = fopen ($log, 'a');
fwrite($h, "$IP");
fclose($h);
$hits++;
}
echo $hits;
在您要显示计数器的页面中包含此文件