【问题标题】:use php session to count image views?使用 php 会话来计算图像浏览量?
【发布时间】:2015-05-01 11:25:36
【问题描述】:

我想统计我网站上的图片浏览量。到目前为止,我设置了一个 cookie,其中包含最后 20 个查看的图像,例如 1254.12.963.4328.32 等等。

这是为了防止在有人按 F5 / 重新加载页面时多次计数。我也不想计算爬虫和蜘蛛。 (我在某处读到机器人不会设置这个 cookie,但我不知道)

当我使用会话 ID 并使用会话中查看的图像 ID 保存数组时,我是否只计算真实用户?我将 laravel 与数据库会话驱动程序一起使用。每个会话可以存储多少数据?

【问题讨论】:

    标签: php session cookies laravel-5


    【解决方案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;
    }
    

    【讨论】:

    • 所以如果设置了 session-cookie 是不够的?我对爬虫/蜘蛛一无所知
    • Also I don't want to count crawlers and spiders. 方法 isCrawler() 将负责。不是,仅计算会话是否设置是不够的,因为它们可能不会存储会话,或者可能会根据请求清除会话。谁知道他们在做什么。特别是“坏男孩”机器人
    【解决方案2】:

    可能你想通过浏览器来确定。

    查看这个项目,它提供了浏览器列表和如何捕捉它的文档。

    BrowsCap

    【讨论】:

      【解决方案3】:

      当我使用会话 ID 并在会话中保存包含查看的图像 ID 的数组时,我是否只计算真实用户? 不。我想答案是否定的,你是否会计算真实用户,因为你必须采取一些措施来验证它是真实用户。这就是为什么 - 例如在提交表单时使用验证码。

      不过,您可以缩小范围,以便查看"who's" 浏览您的页面。 Lea Tano 给了你一个很好的答案,我相信它会给你一个从哪里开始的提示。

      每个会话可以存储多少数据? 会话(默认情况下)存储到服务器,因此实际限制由 PHP 的 memory_limit() 和磁盘空间(在服务器上)确定。

      【讨论】:

        猜你喜欢
        • 2018-07-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-06-18
        • 1970-01-01
        相关资源
        最近更新 更多