首页 / PHP / 用于跟踪唯一页面视图的PHP会话
用于跟踪唯一页面视图的PHP会话
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了用于跟踪唯一页面视图的PHP会话,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1834字,纯文字阅读大概需要3分钟。
内容图文
![用于跟踪唯一页面视图的PHP会话](/upload/InfoBanner/zyjiaocheng/709/544f1827d21346d694bf5c56c048e689.jpg)
我想使用会话来跟踪唯一的页面视图.我知道,这不是一种非常强大的方法,但足以满足我的目标.
在第一页加载时,会话变量已设置,并且数据库中的字段会递增.在后续页面视图中,它不会递增,因为增量是以未设置的会话变量为条件的.
这是我的代码:
$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但是我遇到了与此处提供的解决方案类似的问题.
帮助赞赏!
解决方法:
问题:
>您正在每次更新tblCount,因为每次脚本完成时您的会话都会关闭.
SO:将session_start()调用作为代码中的第一行.
>不允许将整数设置为$_SESSION变量.因此,如果您设置$_SESSION [$pagenumber] =’something’,那么您会收到以下通知:
( ! ) Notice: Unknown: Skipping numeric key 1 in Unknown on line 0
相当……不可理解.详情请见this answer.
解:
将$pagenumber添加为数组(此处为pagenumbers)中的索引,并将该数组添加到$_SESSION变量中.再也没有通知了.
session_start();
$pagenumber = 1;
if (!isset($_SESSION['pagenumbers'])) {
$_SESSION['pagenumbers'] = array();
}
if (!isset($_SESSION['pagenumbers'][$pagenumber])) {
updateViews($pagenumber);
$_SESSION['pagenumbers'][$pagenumber] = $pagenumber;
}
echo 'Page number: ' . $_SESSION['pagenumbers'][$pagenumber] . '<br/>';
$views = getViews($pagenumber);
echo '<pre>Viewed ' . print_r($views, true) . ' times</pre>';
注意:我用我的函数来测试.他们只是替换你的db处理代码.
内容总结
以上是互联网集市为您收集整理的用于跟踪唯一页面视图的PHP会话全部内容,希望文章能够帮你解决用于跟踪唯一页面视图的PHP会话所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。