【问题标题】:PHP - Visitors Online CounterPHP - 访客在线计数器
【发布时间】:2010-11-21 05:57:01
【问题描述】:

我有以下代码来统计我的 PHP 网站上的访问者。它在我使用 WampServer 的本地开发机器上运行良好,但是当我将文件上传到我的托管帐户进行测试时,我意识到它无法正常运行。

我得到了非常高的数字,还注意到会话从未被删除,所以它们只是不断累积。

这是一个简单的会话计数器。有更好的方法吗?有人可以给我看或给我指一些文章吗? 谢谢!

<?php
//------------------------------------------------------------
// VISITORS ONLINE COUNTER
//------------------------------------------------------------
if (!isset($_SESSION)) {
  session_start();
}
function visitorsOnline()
{
    $session_path = session_save_path();
    $visitors = 0;
    $handle = opendir($session_path);

    while(( $file = readdir($handle) ) != false)
    {
        if($file != "." && $file != "..")
        {
            if(preg_match('/^sess/', $file))
            {
                $visitors++;
            }
        }
    }

    return $visitors;
}
?>

【问题讨论】:

    标签: php session counter


    【解决方案1】:

    如果这是共享主机,您计算的是每个人的会话文件,而不仅仅是您自己的。这就是为什么这个数字很大,并且在很大程度上与您的网站上有多少人无关。

    【讨论】:

      【解决方案2】:

      统计访客人数的最佳(免费)方法在这里:http://www.google.com/analytics

      如果您想要更多实时数据(例如,当前活跃用户),请尝试:http://www.woopra.com/

      如果您打算使用自己的代码维护网站上的活跃用户,我会在您的数据库中的用户表中使用“最后一次操作”日期字段来做到这一点。您将能够对 SELECT COUNT(id) FROM Users WHERE #{Time.now} &gt; #{15.minutes.ago} 执行 PHP 等效查询

      如果您还想跟踪匿名用户,而不是使用 Users 表,请制作一个以访问者的 IP 作为标识字段的表,并使用上述相同的技术。

      【讨论】:

        【解决方案3】:

        如果您想要自己的内部计数系统,那么我建议您将与网站相关的此类信息存储在数据库中。并在用户每次浏览网站时更新记录。

        【讨论】:

          【解决方案4】:

          如果生产服务器上的问题是会话永远不会被删除,您有两种选择:

          • 缩短 PHP 安装的会话到期时间。
          • 检查会话文件的最后修改日期,如果它们在从现在起的一定时间内被修改,则仅将其计入总数。

          【讨论】:

            【解决方案5】:

            嗯,我不确定在会话目录中读取会话文件是最好的方法。

            为什么不在每次页面加载时都在 db 表上写入。然后读取过去 x 分钟内的唯一用户数?

            这听起来需要大量数据库,但除非您的网站非常繁忙,否则我看不出有什么问题。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2017-09-23
              • 1970-01-01
              • 2016-05-08
              • 1970-01-01
              • 2020-03-11
              • 1970-01-01
              相关资源
              最近更新 更多