PHP中的页面视图计数器给出了错误的结果

时间:2013-09-11 04:38:35

标签: php security mysqli

我使用以下代码来计算帖子的唯一网页浏览量。

$thread_id = 4554;    // thread_id is the unique page id

$sess_key = "page_id_" . $thread_id;

if(!isset($_SESSION[$sess_key]))
{
  $_SESSION[$sess_key] = 0;
}

if($_SESSION[$sess_key]==0)
{
   $query = "UPDATE tbl_threads SET views = (views + 1) WHERE id = {$thread_id}";

   mysqli_query($connection,$query,MYSQLI_STORE_RESULT);

   $_SESSION[$sess_key] = 1;
}

但问题是,当我添加一个新帖子并单击它来查看它时,它会向数据库添加3次视图,有时会向数据库添加2次视图。当我第二次打开帖子时,它会向数据库添加1。我即将拉头,因为我没有看到此代码中的任何错误。它也没有给我独特的页面浏览量。请分析我的代码并告诉我问题出在哪里。

注意:我已在</body>代码之前的网页末尾粘贴了此代码。

1 个答案:

答案 0 :(得分:-1)

试试这个

<?php

$thread_id = 4554;    // thread_id is the unique page id

$sess_key = "page_id_" . $thread_id;
$sessVal = $_SESSION[$sess_key];

if (!isset($sessVal)) {
    $_SESSION[$sess_key] = session_id();
    //Update the count in mysql table
} 
相关问题