如何统计正版在线访客数量?

时间:2013-12-23 05:22:14

标签: php cookies

我正在开发一个应用程序来存储使用set_cookie()访问我网站的访问者。但是在开发该应用程序时,我对该问题进行了第二次考虑,如果用户是来自另一个系统的访问,我该如何跟踪他。

困惑我的意思是什么?

别担心,我会解释。

让我们想象一个人通过一个系统访问我的网站,我的代码将识别这个人,并将他的IP地址存储到数据库中并算作新用户。没问题。但是这个人正在访问另一个电脑/手机/标签,它也算作新用户。

我不想使用登录系统。 有什么方法可以防止这种情况吗?有什么想法吗?

5 个答案:

答案 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;

在您要显示计数器的页面中包含此文件