IMHO.WS

IMHO.WS (https://www.imho.ws/index.php)
-   Веб-программирование (https://www.imho.ws/forumdisplay.php?f=29)
-   -   $HTTP_REFERER (https://www.imho.ws/showthread.php?t=14927)

sanchos 05.11.2002 20:16

$HTTP_REFERER
 
Помогите, плиз, определить откуда пришел пользователь...
Пробовал сабж, но что-то не хочет :(

RaZEr 05.11.2002 23:41

Так ты по ссылке перешел или просто запустил в браузере ?

Кстати я еще слышал про суету с $HTTP_REFERER и $HTTP_REFERRER , что один из них вроде таки убрали .

PS: Не забывай что referrer это особенность работы браузера и в некоторых браузерах это можно отключить, а некоторые просто это не поддерживают .

Stasik 06.11.2002 08:34

мелнький нюанс... из-за вопросов безопасности я бы посоветовал не $HTTP_REFERER а getenv("HTTP_REFERER");

sanchos 06.11.2002 20:20

Все, спасибо большое :) Это я просто чего-то стормозил... Разобрался. Значение HTTP_REFERER передается броузером в headers, если пользователь пришел откуда-то с другого сайта по ссылке, если же он просто набрал адрес в адресной строке, то значение остается пустым.
А насчет безопасности, то я просто использую:
if(empty( $HTTP_REFERER )){
тра_ля_ля();
}

ЗЫЖ Ну, если с этим разобрались, то может поможете мне узнать ответ вот на какой вопрос:
К примеру у меня есть сайтик, постороенный на шаблонах. В htaccess на 404-ую он тоже выдает шаблон. К примеру redirect.php?page=404. Так вопрос заключается в том, чтобы определить на 404 странце урл какой страницы пользователь ввел до этого, что и привело его на 404?

Вроде пока все :)

Stasik 07.11.2002 03:32

дык.. вот REFERER и будет показывать.....

RaZEr 08.11.2002 02:36

2 SaNChos: Ты что называешь 404 ? Server Responce Code или же результат работы скрипта ? Если первое, то referrer имхо только из логов можно выжать, а если второе, - то обычный HTTP_REFERER .

sanchos 10.11.2002 20:40

Нет, это просто урл такой :)
Можно его представить по другому, например:
ErrorDocument 404 http://www.asd.qwe/errors/404.phtml
Так вот в идеале надо, чтоб на 404-ой.пхтмл скриптом выяснялся реферер и выводилось, мол, Вы набрали тра-ля-ля, но такого у нас нет.
Как это лучше определить? :/

Stasik 10.11.2002 21:32

тоже самое.... в перле он @ENV{'HTTP_REFERER'}

RaZEr 10.11.2002 22:40

В случае с Error Document referrer будет определен, но в нем прийдется писать не "Вы набрали траляля", а "Вы пришли с траляля" или ничего . Как я уже говорил, в данном случае адрес страницы, которую не удалось отобразить можно выжать только из логов .

Впрочем методика залистовывания referrer'ов захода на страницу с 404 ошибкой, хорошо подходит для невнимательных веб-мастеров, у которых на сайте часто бьются внутренние ссылки .

sanchos 10.11.2002 22:56

Ясно... спасибо всем.

ЗЫ А что ты имел ввиду под невнимательными веб-мастерами? :)) Я это спрашивал чтоб не дырдочки залатывать :)

RaZEr 12.11.2002 00:40

А зачем тогда ?

sanchos 12.11.2002 01:05

Ну, к примеру, есть у меня какой-то сервис... Клиент имеет свою личную панель настроек. Для удобства хотелось сделать так:
Не говорить ему, мол, для изменения настроек идите по ввв.мой_сайт.ру/клиенты/что-то_там.пхп?юзер=имя_юзера
, а сразу
имя_юзера.мой_сайт.ру
Конечно, для каждого клиента регистрировать домен 3-его уровня никто не будет... Так вот: если, он набрал "имя_юзера.мой_сайт.ру", которого в природе не существует, то попадает на обработчик ошибки (вроде даже не 404), а там редиректом на "ввв.мой_сайт.ру/клиенты/что-то_там.пхп?юзер=имя_юзера", по средствам вычисления того, что он набрал... Всяко удобнее :)

Теперь конкретно задача понятна? Может какие решения подскажите? Доставать из логов крайне бы не хотелось :(

Aeon 12.11.2002 06:49

почитай доки по mod_rewrite для апача - не знаю насчёт домена 3го уровня, а вот переписать mojdomen.ru/vasja/ в mojdomen.ru/users.php?uin=vasja невидимо для клиента можно запросто.

sanchos 12.11.2002 20:32

Ну, это сделать не трудно. Просто, понимаешь, создавать отдельные папки для кажного юзера - дело тоже не совсем рациональное.
В идеале, вообще, нужен домен 4-ого уровня:
вася.любители_пива.мой_сайт.ру
Понимаешь? При такой штуке не придется ни папок, ни лишних доменов заводить, только база данных.
Вот такая задачка... :(

RaZEr 13.11.2002 20:05

При использовании mod_rewrite тоже .

PS: У ряда хостеров все поддомены через mod_rewrite прописаны .

sanchos 13.11.2002 21:49

А поподробнее, плиз, можно? :)

RaZEr 15.11.2002 23:51

Ты документацию по mod_rewrite почитай для начала, а потом уже задавай вопросы что не выходит .

sanchos 16.11.2002 00:09

Ок, пасиб. Может есть ссылочка какая? :)
(Чего-то я последнее время много попрашайничать стал: расскажи, дай, покажи...) :)


Часовой пояс GMT +4, время: 17:30.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.