我想在我的网站上统计图片视图。到目前为止,我设置了一个包含最近20个已查看图像的Cookie,如1254.12.963.4328.32
等。
如果有人按F5 /重新加载页面,这是为了防止多次计数。另外,我不想算爬虫和蜘蛛。 (我在某个地方看到机器人不会设置这个cookie,但我不知道)
当我使用会话ID并在会话中保存带有已查看图像ID的数组时,我是否只计算真实用户?我使用laravel与数据库会话驱动程序。每个会话可以存储多少数据?
答案 0 :(得分:1)
您可能希望通过浏览器确定。请参阅此项目,该项目提供浏览器列表和文档如何捕获它。
答案 1 :(得分:1)
这是一种自制的方式。当然,有些图书馆比这更好。但是,这是一个良好的开端。特别是,如果你想自己做。
<?php
if (!$_SESSION['counter'] || !isCrawler()) {
$_SESSION['counter'] = 'whatever-counter';
}
function isCrawler() {
$crawlers = array('googlebot'); //add more crawlers agents
foreach ($crawlers as $crawler) {
if (strstr(strtolower($_SERVER['HTTP_USER_AGENT']), strtolower($crawler))) {
return true;
}
}
return false;
}
答案 2 :(得分:1)
当我使用会话ID并在会话中保存带有已查看图片ID的数组时,我是否只计算真实用户? 不,我想如果你算上真正的用户,答案是没有问题的,因为你需要采取一些行动来验证它是真正的用户。这就是为什么 - 例如在提交表单时使用验证码。
但是,您可以缩小范围,以便检查"who's"
浏览您的网页。你已经从 Lea Tano 得到了很好的答案,我认为这会给你一个暗示从哪里开始。
每个会话可以存储多少数据? 会话(默认情况下)存储到服务器,因此实际限制由PHP的memory_limit()和磁盘空间(在服务器上)确定。