0

我在网页末尾放了一个函数来统计线程的浏览量,函数如下

function add_view($thread_id)
{
   global $connection;

   $qry  =  "UPDATE tbl_threads SET views = (views+1) WHERE ";
   $qry .= "thread_id= {$thread_id}";

   mysqli_query($connection,$qry,MYSQLI_STORE_RESULT);
}

该函数在页面结束时触发一次。但问题是当我打开页面一次,然后在数据库中看到有 4 个视图。

有时它添加 3,有时它添加 4,有时它添加 2 到 tbl_threads 的视图字段。

看起来我的网页触发了不止一次,是否可能,(我的网页也有 Google Analytics 和 Google Adsense 代码)

谁能分析一下问题??

这个问题的解决方案是什么?

4

2 回答 2

0

如果您使用 url 重写,浏览器可能会请求其他资产(例如favicon.ico),如果该资产不存在并被重写以请求您的 php 文件,那么您会再次受到打击。Apple 设备也在寻找不同的图标/图像。

于 2013-08-14T05:37:26.150 回答
0

这可以帮助您只计算客户的一次命中。

function add_view($thread_id)
{
   global $connection;
   if(!isset($_SESSION[$thread_id])) {
      $qry  =  "UPDATE tbl_threads SET views = (views+1) WHERE ";
      $qry .= "thread_id= {$thread_id}";
      mysqli_query($connection,$qry,MYSQLI_STORE_RESULT);
      $_SESSION[$thread_id] = 'viewed';
   }
}
于 2013-08-14T06:24:48.743 回答