Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> $_SERVER['HTTP_REFERER'] отсутствует 
:(
    Опции темы
MeIsGremlin
  Дата 16.8.2007, 09:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 172
Регистрация: 2.12.2005
Где: Киев

Репутация: нет
Всего: нет



Перехожу с одной страницы сайта на другую по ссылке $_SERVER['HTTP_REFERER'] вообще отсутствует в массиве. В чем может быть причина? Есь ли другие способы на PHP получить referer ?
--------------------
mess with the best die like the rest 
PM MAIL ICQ Skype GTalk MSN   Вверх
Rigel
Дата 16.8.2007, 10:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 122
Регистрация: 24.7.2007
Где: Москва

Репутация: нет
Всего: нет



Цитата(MeIsGremlin @ 16.8.2007,  09:48)
Перехожу с одной страницы сайта на другую по ссылке $_SERVER['HTTP_REFERER'] вообще отсутствует в массиве. В чем может быть причина? Есь ли другие способы на PHP получить referer ?

Выполни встроенную функцию phpinfo(); , она покажет все переменные, которые определены в сеансе и их значения. Массив _SERVER может быть и не определен, но есть массивы _ENV и _PHP, например, первый из них самый универсальный. Посмотри, там несложно разобраться, что к чему

Это сообщение отредактировал(а) Rigel - 16.8.2007, 10:28
--------------------
С уважением. Rigel. http://www.smoliy.ru
PM MAIL WWW ICQ   Вверх
MeIsGremlin
Дата 16.8.2007, 11:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 172
Регистрация: 2.12.2005
Где: Киев

Репутация: нет
Всего: нет



Цитата(Rigel @ 16.8.2007,  10:27)
Цитата(MeIsGremlin @ 16.8.2007,  09:48)
Перехожу с одной страницы сайта на другую по ссылке $_SERVER['HTTP_REFERER'] вообще отсутствует в массиве. В чем может быть причина? Есь ли другие способы на PHP получить referer ?

Выполни встроенную функцию phpinfo(); , она покажет все переменные, которые определены в сеансе и их значения. Массив _SERVER может быть и не определен, но есть массивы _ENV и _PHP, например, первый из них самый универсальный. Посмотри, там несложно разобраться, что к чему

Я делал print_r($_SERVER) и потом print_r($GLOBAL)

Массив сервер есть, но http_referer в нем нет
--------------------
mess with the best die like the rest 
PM MAIL ICQ Skype GTalk MSN   Вверх
Rigel
Дата 16.8.2007, 12:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 122
Регистрация: 24.7.2007
Где: Москва

Репутация: нет
Всего: нет



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

Это сообщение отредактировал(а) Rigel - 16.8.2007, 12:29
--------------------
С уважением. Rigel. http://www.smoliy.ru
PM MAIL WWW ICQ   Вверх
SelenIT
Дата 16.8.2007, 14:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 32
Всего: 401



1) Не все user-agent-ы передают рефереры;
2) Некоторые прокси "режут" их;
3) Некоторые браузеры (особенно архаичные) передают под видом реферера непонятно что;
4) Реферер легко подделать.

Поэтому в мануале и написано
Цитата
In short, it cannot really be trusted.


Если реферер нужен только для статистики - я бы не заморачивался. Если же от переходов пользователя по страницам зависит важная логика, я бы, наверное, вместо анализа реферера сохранял ID-шники ранее посещенных страниц в куках или сессии (в зависимости от конечной задачи)...


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
MeIsGremlin
  Дата 16.8.2007, 15:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 172
Регистрация: 2.12.2005
Где: Киев

Репутация: нет
Всего: нет



2 Rigel переходиться по ссылке. И http_referer не просто пуст его вообще нет.

2 SelenIT  у меня на домене есть две админки. Обе с авторизацией. Но нужно чтоб вход в одну админку с другой был без авторизации и с тем же логином и наоборот. Поэтому нужен не просто для статистики.

Поэтому я и спрашиваю. Можно ли как-то решить вопрос с реферером или получить его какими-то другими способами кроме как через массив сервера. Ява скрипт тоже не показывает реферер. 

Его можно как-то принудительно передавать?

Это сообщение отредактировал(а) MeIsGremlin - 16.8.2007, 15:10
--------------------
mess with the best die like the rest 
PM MAIL ICQ Skype GTalk MSN   Вверх
SelenIT
Дата 16.8.2007, 15:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 32
Всего: 401



MeIsGremlin, а авторизация в админках на сессиях или через 401-й заголовок?


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
Rigel
Дата 16.8.2007, 16:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 122
Регистрация: 24.7.2007
Где: Москва

Репутация: нет
Всего: нет



Цитата(MeIsGremlin @ 16.8.2007,  15:07)
Поэтому я и спрашиваю. Можно ли как-то решить вопрос с реферером или получить его какими-то другими способами кроме как через массив сервера. Ява скрипт тоже не показывает реферер. 

Его можно как-то принудительно передавать?

Сам реферер, насколько я знаю, нет, но решить задачу можно. Первое, что приходить в голову - это объединить сессии обоих админок. Это будет самый надежный способ, потому что передача данных произойдет на сервере, а через клиента ничего передаваться не будет. Второй вариант: выставлять признак при переходе от одной админки к другой - я думаю, лучше всего пересечение куки с IP. Где хранить последний IP пользователя - вопрос решаемый, я думаю, что это будут файлы на каждый IP  и сборщик мусора в конце. Если уровень безопасности низкий, можно ограничится одними куками: большинство админок требуют их обязательного наличия. Если защита сделана через .htpasswd, как я люблю, и логин с паролем в ней постоянно присутствуют (переменные $_SERVER["PHP_AUTH_PW"] и $_SERVER["PHP_AUTH_USER"] ), то можно перегнать их методом post в другую админку (чтобы враг не перехватил) ...
)
--------------------
С уважением. Rigel. http://www.smoliy.ru
PM MAIL WWW ICQ   Вверх
MeIsGremlin
Дата 16.8.2007, 17:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 172
Регистрация: 2.12.2005
Где: Киев

Репутация: нет
Всего: нет



Цитата(SelenIT @ 16.8.2007,  15:12)
MeIsGremlin, а авторизация в админках на сессиях или через 401-й заголовок?

Да обе на сессиях
--------------------
mess with the best die like the rest 
PM MAIL ICQ Skype GTalk MSN   Вверх
Golda
Дата 16.8.2007, 21:25 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 460
Регистрация: 26.3.2007
Где: Ариель, Израиль

Репутация: 20
Всего: 42



Объедините сессии обеих админок, как посоветовал Rigel. Можете хранить в сессии признак страницы, на которой произошел логин, если нужно. На мой взгляд, это самый удобный и безопасный вариант. Передачу пароля методом POST сложно считать безопасным методом


--------------------
"For every problem, there exists a simple and elegant solution which is absolutely wrong." -- J. Wagoner, U.C.B. Mathematics
PM MAIL   Вверх
console
Дата 16.8.2007, 21:28 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 307
Регистрация: 12.2.2007
Где: Belarus::Minsk

Репутация: 2
Всего: 3



Попробуй getenv('HTTP_REFERER')


--------------------
user posted image
Nothing is impossible
My WeBlog
PM MAIL WWW ICQ   Вверх
MeIsGremlin
Дата 16.8.2007, 21:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 172
Регистрация: 2.12.2005
Где: Киев

Репутация: нет
Всего: нет



Цитата(console @ 16.8.2007,  21:28)
Попробуй getenv('HTTP_REFERER')

пусто

попробую объеденить сессии

Это сообщение отредактировал(а) MeIsGremlin - 16.8.2007, 21:42
--------------------
mess with the best die like the rest 
PM MAIL ICQ Skype GTalk MSN   Вверх
psworld
Дата 20.8.2007, 13:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 16.12.2006
Где: Московская област ь

Репутация: нет
Всего: 0



То же самое. В моем случае это был файервол.
PM MAIL WWW   Вверх
Bouncer
Дата 30.8.2007, 00:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 30.8.2007

Репутация: нет
Всего: нет



Для определения запросов, по которым пришел посетитель, можете воспользоваться системой Referer
PM MAIL   Вверх
MeIsGremlin
  Дата 30.8.2007, 08:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 172
Регистрация: 2.12.2005
Где: Киев

Репутация: нет
Всего: нет



Цитата(Bouncer @ 30.8.2007,  00:23)
Для определения запросов, по которым пришел посетитель, можете воспользоваться системой Referer

Да вещь интересная но там идет условие
 if ($_SERVER['HTTP_REFERER'])
а $_SERVER['HTTP_REFERER']  пуст. То есть его вообще нет
--------------------
mess with the best die like the rest 
PM MAIL ICQ Skype GTalk MSN   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0634 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.