Перенаправить при очистке реферера. PHP, если это возможно - PullRequest
2 голосов
/ 09 августа 2009

У меня есть php-скрипт, который проверяет, очищен ли реферер после короткого процесса, пересылается ли он к месту назначения, если он не очищен, процесс, который я использовал для очистки реферера, перезапускается. Пока работает, вот код, который я использовал:

<?php
$referer = $_SERVER['HTTP_REFERER'];
if($referer == "")
{
echo "<meta http-equiv=\"refresh\" content=\"0;url=http://sitetogoto.com\">";
}
else
{
echo "<meta http-equiv=\"refresh\" content=\"0;url=http://sitewherereferrergetsclearedagain.com\">";
}
?> 

Похоже, что до сих пор это работает, если я нажимаю на ссылку, которая приводит меня к этому сценарию, она приводит меня на sitetogoto.com без реферера. Тем не менее, я заметил, что при использовании автосерфинга, например, я застреваю в бесконечном перенаправлении, когда реферер просто не очищается ... Есть идеи почему?

Привет

Ответы [ 3 ]

4 голосов
/ 09 августа 2009

В PHP чистый путь - перенаправление заголовка

<?php
if ($_SERVER['HTTP_REFERER']!="http://www.yoursite.com") {
  header("Location: http://www.example.com/"); 
  exit;
}
?>

Редактировать (Ваш вопрос)

<?php
if (!empty($_SERVER['HTTP_REFERER'])) {
  // CLEAR IT / REDIRECT 
  header("Location: http://www.example.com/"); 
  exit;
}
?>
0 голосов
/ 06 марта 2010

Конечно, это не работает. http referer устанавливается в браузере, на стороне клиента, а не через сервер.

Попробуйте очистить его с помощью JavaScript

0 голосов
/ 09 августа 2009

Попробуйте if(isset($_SESSION['HTTP_REFERER'])) или if(empty($_SESSION['HTTP_REFERER']))

...