2009-12-23 4 views
0

Мне было интересно, можно ли выполнить скрипт в зависимости от сайта referrer. например, если пользователь обращается к моему сайту с Facebook, я хочу, чтобы скрипт был активирован, но если пользователь обратился к сайту с помощью поиска Google, сценарий не будет запущен. Это возможно?Использование referrer для запуска скрипта

ответ

2

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

0

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

1

Вы имеете в виду серверный или клиентский скрипт?

С клиентской стороны вы можете получить доступ к рефереру через document.referrer (да, с удвоенным «r», хотя соответствующий HTTP-заголовок неверно написан). например .:

if (document.referrer.toLowerCase().indexOf('//www.example.com')) { 
    document.getElementById('message').innerHTML= 'Hello, visitor from example.com'; 
} 
+0

+1 не знал, что! –

0

Я хотел бы сделать что-то вроде этого:

if (array_key_exists('HTTP_REFERER', $_SERVER) === true) 
{ 
    // this will give you something like google.com or facebook.com 
    $domain = str_ireplace('www.', '', parse_url($_SERVER['HTTP_REFERER'], 'PHP_URL_HOST')); 

    // check if there is any referer script you want to execute 
    if (is_file('path/to/scripts/' . $domain . '.php') === true) 
    { 
     // include the path/to/scripts/google.com.php for instance 
     include('path/to/scripts/' . $domain . '.php'); 
    } 
} 
Смежные вопросы