Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Войти
 
Страницы: 1
RSS
Как узнать с какого адреса на сайт пришли?, желательна функция на ПХП. Кто знает?
 
Нужно выдать ту или иную страницу в зависимости от того откуда пришел пользователь. Если сам набрал адрес, то одно, а если с google например, то другое.
 
Нужно проверять HTTP заголовок REFERER. Можно сделать как на яваскрипте, так и на чём-нибудь серверном.
 
Цитата
.cens пишет:
Нужно проверять HTTP заголовок REFERER
Это мне известно. А функцию поудобнее можно? Простите меня за мою лень =) Лучше на серверном, хотя и на ПХП не помишает.
 
Цитата
<?php
$f = fopen("log.txt", "a");
fwrite($f, "IP: {$_SERVER['REMOTE_ADDR']} Ref: {$_SERVER
['HTTP_REFERER']} \n");
fclose($f);
?>

В примере: IP, с какого сайта пришёл посетитель/
 
Код
<?
$ref = $_SERVER['HTTP_REFERER']; //Создаём переменную с реф.ссылкой
/* Для примера сделаю слабенькую и элементарную выборку */
if(strpos($reff,"yandex"))  echo "Выводим что-либо или делаем редирект"; //если с яндекса
if(strpos($reff,"google"))  echo "Выводим что-либо или делаем редирект"; //если с гугла

/* 
Ну в принципе и в таком же духе...
*/ 
?>
 
В $HTTP_REFERER не попадет адрес от куда ты пришел, туда занесется автоматом только локальные переходы.. или же с удаленного урала должен передаваться параметр
Код
http://your_server.com?HTTP_FERERER=mysite.com
- иначе HTTP_REFERER будет пуст.

А вот в случаи с джаваскриптом все намного проще. так как броузер хранит от куда пришел пользователь, то в переменной document.referrer - будет тот адрес перехода.
Лично, я делал в хедере проверку на джаваскрипте.. и делал редирект куда уже мне нужно.
Вот код:
Код
             function redirect() {
                  var r = document.referrer;

                        if (r) {
                      var word = r.match(/(p|q)\=(.*?)(&|$)/i);
                        if (word) {
                           if (!(word[1])) {
                               document.location = 'http://direct.site';
                           } else {
                            document.location = 'http://your.site');
                           }
                        }  else {
                               document.location = 'http://direct.site';
                        }
                        } else {
                               document.location = 'http://direct.site';
                        }
              }
                       redirect();

в даном коде переадресация идет на адрес your.site - когда в реферер есть параметр q или p (обычно поисковые системы для передачи запроса используют эти параметры, но ты можешь еще проверит и на сам домен).
если этих параметров нет идет на так называемый директ.
 
Ну да, здрасте! С какого ещё перепуга в $_SERVER['HTTP_REFERER'] не будет содержатся реферрер??!!!!!!
 
в $_SERVER['HTTP_REFERER'] всегда содержится адрес сайта с которого пришел броузер, если иное не установлено в настройках сайта, или не порезано каким либо фильтром.
В зависимости от настроек сервера в переменую $HTTP_REFERER может устанаваливатся либо НЕ устанавливаться значение $_SERVER['HTTP_REFERER'], потому рекомендую всегда пользоваться именно $_SERVER['HTTP_REFERER'] а не $HTTP_REFERER.
 
Не ну понятное дело, что реф ссылку можно убирать, фаерволы это делают и т.д.. но по-другому, насильственным путём, никак уж не узнать реф ссылку вроед как :)
 
Всем огромное спасибо за оказанную мне услугу!  Время сэкономил офигенно!!
 
через .htacсess можно сделать
и никакого php не понадобиться.
 
Цитата
Ортемго пишет:
через .htacсess можно сделать
и никакого php не понадобиться.
Как? если не секрет.
 
Я тебе сказал что можно, гугль в руки. Что за люди пошли, найди доку по .htaccess в ней почитай. Если вам лениво читать, то заниматься программированием не для вас.
 
Артем Лебедев, а вот тут не врите про ленивых :)))
Я до жути ленивый, но всё же занимаюсь программирвоанием уже приличное время и, скажу без лишней скромности, достаточно успешно :)))))
Страницы: 1
Читают тему