PHP会话和机器人程序检测

PHP会话和机器人程序检测,php,session,Php,Session,好的,我制作了一个小脚本,它设置了一个$\u会话[$\u服务器['REMOTE\u ADDR']]]问题是,它不适用于机器人程序,如果我转到我的网页并刷新页面,它就可以工作,但它不适用于机器人程序 当我查看会话目录时,我看到1000个会话文件,其中包含IP,但会话变量总是=1,因此我的想法是,当bot连接到我的站点时,它总是设置一个新会话,而不是增加会话变量。你知道我该怎么解决这个问题吗。这是我的密码: <?php session_start(); i

好的,我制作了一个小脚本,它设置了一个$\u会话[$\u服务器['REMOTE\u ADDR']]]问题是,它不适用于机器人程序,如果我转到我的网页并刷新页面,它就可以工作,但它不适用于机器人程序

当我查看会话目录时,我看到1000个会话文件,其中包含IP,但会话变量总是=1,因此我的想法是,当bot连接到我的站点时,它总是设置一个新会话,而不是增加会话变量。你知道我该怎么解决这个问题吗。这是我的密码:

   <?php
        session_start();
        if(isset($_SESSION[$_SERVER['REMOTE_ADDR']])){

            $_SESSION[$_SERVER['REMOTE_ADDR']]++;

            if($_SESSION[$_SERVER['REMOTE_ADDR']] % 2 == 0) {
            // DO SOMETHING
}

        } else {
            $_SESSION[$_SERVER['REMOTE_ADDR']] = 1;
        }
    ?>

为JON编辑:

上面的脚本将在我的站点的所有页面上执行:

会话变量:get build so$\u SERVER['REMOTE\u ADDR']例如is=127.0.0.1

因此,我的会话变量将是$\u SESSION['127.0.0.1'

因此,当IP转到我的站点x、y、1、2、3、5的其他页面时,$\u SESSION['127.0.0.1']变量的增量为1

但这不适用于机器人

Jon我想:会话是服务器端的,所以变量存储在服务器上,我不想设置任何cookies。

你不能“修复”这个问题。如果有人想从您的站点中删除不需要会话处于特定状态的部分(例如,登录用户),那么他们不会费心存储您的会话id cookie并将其返回给您。如果没有会话id,每次它们对您来说都像一个新会话


你到底想在这里完成什么?

你遇到的问题来自你为另一个问题发明的解决方案。最初的问题是什么?为什么需要会话变量?在
//做某事时发生了什么


仅仅依靠饼干。这行不通

我想你错过了一点。(即,你所看到的)你的机器人需要尊重cookies,会话才能正常工作。@MichaelMior我不是在做机器人,我想要捕捉机器人,它们会进入我的网站。我明白了。机器人可以随意忽略cookies,所以你不能用这种方式捕捉它们。你必须将这些数据持久地存储在其他地方。Jon,所有页面上都会生成会话,我认为会话是服务器端的。请在我的问题中检查我的编辑。@user1015314:会话的数据存储在服务器端,但客户端通过cookie告诉您哪个会话是他们的会话。您应该仔细阅读HTTP会话是如何工作的,因为您似乎有一些误解。