百度手机网站php访问统计代码的bug

2014年05月15日 05:20 by:老修

导读: 针对手机网站(wap网页)访问统计百度给出了php版本, asp.net版本和jsp版3种访问统计的代码. 老修安装中发现php版本(hm.php)存在bug, 并提供修改方法.

要知道我们的手机移动客户端对js访问统计基本是不支持的, 也就是说51.la 还有其它的js统计代码基本上统计不全我们手机用户的访问情况.

我不建议把访问统计写入自己的数据库, 因为这些数据太大了, 占空间不说一直往数据库写数据还影响数据库查询.

针对手机网站访问统计百度给出了php版本/ asp.net版本和jsp版 3种访问统计的代码.

wap手机网站百度访问统计的方式:

登录 tongji.baidu.com , 如图操作:

获取百度php asp.net jsp访问统计

百度php版访问统计

百度提供的hm.php有几处bug:

如果直接在手机浏览器中输入手机网站, 比如(http://m.lao8.org) 会看到以下2个错误提示:

  1. Notice: Undefined index: HTTP_REFERER in /lao8.org/m.lao8.org/hm.php on line 75
  2. Notice: Undefined index: Hm_lpvt_fc7da860776f95a1b8b328c28b6cdc0e in /lao8.org/m.lao8.org/hm.php on line 80

修改百度php手机站点访问统计bug的方法:

说实话百度也是大公司了, 访问统计一共没几行代码还能有这样的bug实在是令人费解.

一. 找到    $referer = $_SERVER['HTTP_REFERER']; 根据提示是在75行, 改为:

  1. $referer = isset($_SERVER['HTTP_REFERER'])?$_SERVER['HTTP_REFERER']:"";

二. 找到     if (is_null($referer) || (!is_null($parsedPath) && !is_null($parsedReferer) && $parsedPath["host"] === $parsedReferer["host"])) {

做如下修改

  1. if (empty($referer) || (!is_array($parsedPath) && !is_array($parsedReferer) && $parsedPath["host"] === $parsedReferer["host"])) {

修改后重新上传就没有错误提示了.