Обнаружить перенаправленного посетителя - PullRequest
2 голосов
/ 10 марта 2012

Вот сценарий:

Посетитель Page1.php перенаправляется с JavaScript на Page2.php

Есть ли способ узнать, что посетитель, который попадает на Page2.php, является перенаправленным посетителем, отслеживая Page2.php, если я вообще не использую сеансы и переменные на каком-либо языке?

Без дела / с помощью:

  • манипулирование URL
  • Cookie
  • Сессия
  • Любые переменные
  • Абсолютно без изменений в Page1.php

Я спрашиваю об этом, потому что не хочу, чтобы другие сайты обнаружили, что я перенаправил пользователей на их сайт.

Я просто хочу знать возможность.

Ответы [ 3 ]

1 голос
/ 10 марта 2012

Если вы не хотите использовать серверные языки, ваша единственная альтернатива - JavaScript. Вы можете перенаправить на Page2.php?redirected=true и использовать следующий код для GET перенаправленной переменной на Page2.php.

var $_GET = {};

document.location.search.replace(/\??(?:([^=]+)=([^&]*)&?)/g, function () {
    function decode(s) {
        return decodeURIComponent(s.split("+").join(" "));
    }

    $_GET[decode(arguments[1])] = decode(arguments[2]);
});

if($_GET['redirected']){
   // Redirected from Page1.php!
}

Источник: как получить переменные GET и POST с помощью JQuery?

1 голос
/ 10 марта 2012

Установите файл cookie javascript на начальной странице при перенаправлении.

На новой странице проверьте, установлен ли файл cookie, затем удалите его.

1 голос
/ 10 марта 2012

Просто установите флаг в строке запроса при перенаправлении (добавьте строку запроса к вашему месту перенаправления):

Page2.php?redirect=1

Или, если вам нужна ссылающаяся страница:

Page2.php?referer=Page1.php

Затем проверьте с помощью $_GET['referer']

Возможно, вы сможете прочитать $_SERVER['HTTP_REFERER'], но я лично склонен избегать его, потому что он не всегда содержит то, что, по вашему мнению, должно.

...