【问题标题】:Tracking visitor IP/Clicks in PHP在 PHP 中跟踪访问者 IP/点击
【发布时间】:2011-05-30 18:28:27
【问题描述】:

我正在尝试编写一个脚本,或者更像是想出一个简单的逻辑来跟踪点击或访问。我不需要跟踪每个页面,只要它们登陆主页就是我想要将其存储为 1 次点击的位置。

首先,是否可以肯定地说通过 IP 进行跟踪远非准确,因为许多用户可以在同一个 IP 下?

目前我这样做的逻辑是在客户端第一次登陆主页时在客户端设置一个带有标志的 cookie。那时,我会用 1 次 unqiue click 作为唯一更新数据库。然后每次同一访问者访问时,主页都会检查标志,如果存在,则通过 1 次原始点击更新数据库......等等。

我知道如果他们转储 cookie,它会丢弃数据,但一般来说,这是怎么做的?

你有更好的方法吗?

【问题讨论】:

  • @Rick - 你需要实时数据库吗?
  • 是的,cookie 是执行此操作的一般方法。
  • @ajreal - “实时”是什么意思?
  • @Rick - 有很多用于此目的的 Web 访问日志工具,这些工具生成的统计数据通常不会实时。因此,如果您没有计划实时报告/统计数据,请改为部署这些工具之一,让您的生活更轻松
  • @ajreal - 我不需要任何复杂的东西,所以我想自己写这个,但由于这是我第一次写这种类型的数据,我只是在联系已经有经验的人。

标签: php click ip


【解决方案1】:

试试这个来检索访问者的 ip,它适用于我的统计数据:

function get_ip()
{
    if($_SERVER){
        if(isset($_SERVER['HTTP_X_FORWARDED_FOR']))
            $adress = $_SERVER['HTTP_X_FORWARDED_FOR'];
        elseif(isset($_SERVER['HTTP_CLIENT_IP']))
            $adress = $_SERVER['HTTP_CLIENT_IP'];
        else
            $adress = $_SERVER['REMOTE_ADDR'];
    } else {
        if(getenv('HTTP_X_FORWARDED_FOR'))
            $adress = getenv('HTTP_X_FORWARDED_FOR');
        elseif(getenv('HTTP_CLIENT_IP'))
            $adress = getenv('HTTP_CLIENT_IP');
        else
            $adress = getenv('REMOTE_ADDR');
    }

    return $adress;
}

【讨论】:

  • 所以我猜只是使用 $_SERVER['REMOTE_ADDR'] 不会削减它?
  • @Rick - apache 环境变量HTTP_X_FORWARDED_FOR 取决于您的配置,您可能可以跳过
  • @ajreal 是的,它是大多数环境的全局函数
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-04-09
  • 2012-06-10
  • 2012-05-18
  • 1970-01-01
  • 2011-04-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多