【发布时间】:2017-10-14 16:30:38
【问题描述】:
我想使用会话来跟踪独特的页面浏览量。我知道,这不是一个非常强大的方法,但足以满足我的需求。
在第一个页面加载时,会话变量被设置并且数据库中的一个字段递增。在随后的页面浏览中,它不会增加,因为增加的条件是会话变量没有被设置。
这是我的代码:
$pagenumber = 1;
//other stuff here...
session_start();
if (!isset($_SESSION[$pagenumber])) {
$storeview = mysqli_query($dbconnect, "UPDATE tblcount SET views=views+1 WHERE id='$pagenumber'");
$_SESSION[$pagenumber] = $pagenumber;
}
echo $_SESSION[$pagenumber];
$Recordset1 = mysqli_query($dbconnect, "SELECT views FROM tblcount WHERE id = '$pagenumber'");
$row_Recordset1 = mysqli_fetch_assoc($Recordset1);
echo "Viewed ".$row_Recordset1['views']." times";
第一个回声仅用于测试。它在页面刷新时很好地呼应了该值,并且增量第一次起作用,但视图计数在每次页面刷新时继续增加,这是不应该的。我不明白为什么。
我发现了一个类似的问题: PHP: Unique visits/hits to specific items using cookies/ip 但我遇到了与那里提供的解决方案类似的问题。
帮助表示赞赏!
【问题讨论】:
-
$pagenumber??你从哪里得到这个变量? -
对不起,我应该提到这一点。 $pagenumber 是前面定义的。例如。 index.php 有 $pagenumber = 1;在开始时定义。
-
所以显示所有代码。或者展示一个实际正确演示真实代码的示例
-
@RiggsFolly 感谢您的关注。我编辑了这篇文章,以展示更多围绕相关代码发生的事情。这有帮助吗?