页面视图计数功能给出错误的结果

时间:2013-08-14 05:31:52

标签: php

我在我的网页末尾放了一个函数来计算线程的视图,功能如下

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代码)

任何人都可以分析问题吗?

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分: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';
   }
}