PHP сессия и обнаружение ботов - PullRequest
0 голосов
/ 18 января 2012

Хорошо, я сделал небольшой скрипт, который устанавливает $ _ SESSION [$ _ SERVER ['REMOTE_ADDR']] проблема, она не работает с ботами, если я захожу на свою веб-страницу и заставляю страницу обновить ееработает, но не работает с ботами.

Когда я просматриваю каталог сеанса, я вижу тысячи файлов сеансов с ips в нем, но переменная сеанса всегда равна = 1 так что я думаю, что когда бот подключается к моему сайту, он всегда устанавливает новый сеанс вместо увеличения переменной сеанса.Любая идея, как я могу это исправить.Вот мой код:

   <?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:

Этот скрипт выполняется на всех страницах моего сайта:

СессияПеременная: получает сборку, поэтому $ _ SERVER ['REMOTE_ADDR'] , например, = = 1018 * 127.0.0.1

, поэтому моя переменная SESSION будет $ _ SESSION ['127.0.0.1 '];

Поэтому, когда IP-адрес переходит на другие страницы моего сайта x, y, 1,2,3,5 $ _ SESSION [' 127.0.0.1 '] переменная получает приращение 1

Но это не работает для ботов.

Я подумал: СЕССИЯ на стороне сервера, так что переменные хранятся на сервере, я не хочу устанавливать какие-либо куки.

Ответы [ 2 ]

2 голосов
/ 18 января 2012

Вы не можете "исправить" это. Если кто-то хочет очистить части вашего сайта, для которых не требуется сеанс, находящийся в определенном состоянии (например, вошедший в систему пользователь), он не будет беспокоиться о сохранении файлов cookie с идентификатором сеанса и их возврате вам. И без идентификатора сеанса каждый раз они будут выглядеть для вас как новый сеанс.

Что именно вы пытаетесь достичь здесь?

1 голос
/ 18 января 2012

Проблема, с которой вы столкнулись, исходит из решения, которое вы изобрели для другой проблемы. Какая первоначальная проблема? Зачем вам нужна переменная сеанса? Что происходит в // DO SOMETHING?

Просто не полагаться на куки. Это не сработает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...