Автор Тема: функция referer()  (Прочитано 10876 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
функция referer()
« Ответ #15 : 20 Сентября 2004, 18:57:20 »
Цитировать
Phoinix:
Чем обоснован отказ от $ENV{\'HTTP_REFERER\'}?

тем, что это НЕОБЯЗАТЕЛЬНОЕ поле.
А вот записывать текущий урл в хидден -прекрасное решение.

Оффлайн Phoinix

  • RW
  • Ветеран
  • *****
  • Сообщений: 1097
  • +0/-0
  • 2
    • Просмотр профиля
    • http://phoinix.ucoz.ru
функция referer()
« Ответ #16 : 20 Сентября 2004, 19:10:03 »
RomikChef
Ух ты... тогда и
$ENV{\'SERVER_NAME\'} - тоже необязательное;
$ENV{\'REQUEST_URI\'} - тоже необязательное;

или hidden формировать с помощью других переменных можно???

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

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
функция referer()
« Ответ #17 : 20 Сентября 2004, 19:19:49 »
Phoinix
не тупи, а?
Не знаешь, что такое реферер - не вякай.
Цитировать
$ENV{\'REQUEST_URI\'} - тоже необязательное;

сравнил опу с пальцем.

Цитировать
Phoinix:
вообще трудн вообразить себе ситуацию, когда передать рефер - невозможно, или затруднительно...

Трудно вообразить ситуацию, когда ты ВООБЩЕ можешь с сервера хоть как-то повлиять на передачу этого заголовка. И уж тем более - "передавать". Чудик.

Оффлайн Phoinix

  • RW
  • Ветеран
  • *****
  • Сообщений: 1097
  • +0/-0
  • 2
    • Просмотр профиля
    • http://phoinix.ucoz.ru
функция referer()
« Ответ #18 : 20 Сентября 2004, 19:21:36 »
Forza
При submit формы referer ВСЕГДА передается...

А у тебя авторизация.
Я не знаю, с каких это пор, мы проходим авторизацию, передавая логин и открытый(!) пароль в строке браузера...

Оффлайн Phoinix

  • RW
  • Ветеран
  • *****
  • Сообщений: 1097
  • +0/-0
  • 2
    • Просмотр профиля
    • http://phoinix.ucoz.ru
функция referer()
« Ответ #19 : 20 Сентября 2004, 19:26:13 »
RomikChef
Цитировать
Не знаешь, что такое реферер - не вякай.

Может и незнаю... просвети несмышленного пожалуйста...

Вообще разговор идет на конкретном примере, как вернуться назад при submit формы...

Почему нельзя обойти submit я уже написал...

Зачем формой передавать еще переменную, а потом её обрабатывать, если эти данные и так есть???

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
функция referer()
« Ответ #20 : 20 Сентября 2004, 19:27:24 »
Цитировать
Phoinix:
При submit формы referer ВСЕГДА передается...

рассказывай эти сказки своей бабушке.

Оффлайн Phoinix

  • RW
  • Ветеран
  • *****
  • Сообщений: 1097
  • +0/-0
  • 2
    • Просмотр профиля
    • http://phoinix.ucoz.ru
функция referer()
« Ответ #21 : 20 Сентября 2004, 19:34:01 »
RomikChef
О как...
А на примере можно???

Когда referer нет в заголовке? При submit формы?

У меня может и опыта меньше, и знаний не хватает, но вот никогда не испытывал затруднений в получении данного параметра...
« Последнее редактирование: 20 Сентября 2004, 19:40:20 от Phoinix »

Оффлайн Phoinix

  • RW
  • Ветеран
  • *****
  • Сообщений: 1097
  • +0/-0
  • 2
    • Просмотр профиля
    • http://phoinix.ucoz.ru
функция referer()
« Ответ #22 : 20 Сентября 2004, 20:10:50 »
RomikChef
Ну раз ответа нет, то я сам отвечу...

Заблокировать referer можно только на фаерволе, но, при этом, данной функцией не пользуются, т.к. многие сайты его (referer) проверяют, и говорить о том, что часто referer не передается - неправильно.
Да, конечно, утяжелять код дополнительными полями (формирование его я даже не считаю), логично, вдруг один из тысячи пользователей почуствует неудобство... а остальные 999???

А я дома сижу на модеме, нет у меня ни домашних сетей в городе ни выделенок... и скорость мне дает местный ужел связи 9К максимум... Да, конечно, сейчас 80% пользователей сидят на скоростном доступе, им не страшны лишние 2Кб...

Может я и поспешил, с утверждением "ВСЕГДА", но точку зрения не поменял...

Оффлайн Forza

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 288
  • +0/-0
  • 0
    • Просмотр профиля
функция referer()
« Ответ #23 : 21 Сентября 2004, 00:17:47 »
Какая тут дискуссия развелась в моё отсутствие.
Цитировать
Phoinix:
Чем обоснован отказ от $ENV{\'HTTP_REFERER\'}?

В доке к CGI.pm было написано "Not available for all browsers".
Цитировать
Phoinix:
Я не знаю, с каких это пор, мы проходим авторизацию, передавая логин и открытый(!) пароль в строке браузера...

Почему в строке браузера? Форма передаётся методом POST.
Цитировать
Phoinix:
Когда referer нет в заголовке?

Да, RomikChef, приведи, пожалуйста, пример, когда при сабмите формы REFERER может отсутствовать.

Оффлайн Green Kakadu

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2757
  • +1/-0
  • 0
    • Просмотр профиля
    • http://gnezdo.webscript.ru
функция referer()
« Ответ #24 : 21 Сентября 2004, 01:12:32 »
Цитировать
когда при сабмите формы REFERER может отсутствовать.

напр. если форму сабмитить роботом
 в исканиях.

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
функция referer()
« Ответ #25 : 21 Сентября 2004, 10:39:18 »
Да при чем здесь роботы?
Это. Поле. Не. Обязательное.
Все. Этого должно быть достаточно.

Реферер посылается ПО ЖЕЛАНИЮ браузера. А так же - по воле посредников.
Если кто не знает - бывают такие кэширующие прокси. А если кто еще подумает немножко, то поймет, что в запросах, идущих через такую прокси, ВСЕГДА отсутствует реферер.
Цитировать
Phoinix:
Заблокировать referer можно только на фаерволе, но, при этом, данной функцией не пользуются

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

Оффлайн Forza

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 288
  • +0/-0
  • 0
    • Просмотр профиля
функция referer()
« Ответ #26 : 24 Сентября 2004, 16:34:24 »
Итак, возвращение к исходной странице после сабмита формы я сделал с помощью хранения урла в хиддене.

Теперь, ещё раз пробегаясь по скрипту, я "вспомнил", что после оформления добавления товара в корзину (обработка урла "my.pl?action=add;id=1") опять же вызывалось print redirect (referer()) для вывода той же страницы.
Получается, что теперь в каждый урл добавления определённого товара надо вставить информацию о каталоге, из которого он был добавлен, или ключевые слова поиска, из результатов которого он был добавлен.
Или, может быть, лучше повесить на onClick JS-функцию, которая будет запускать в невидимом фрейме обработчик добавления в корзину, а потом рефрешить страницу (рефреш нужен, т.к. на каждой странице есть счётчик товаров в корзине)?

Что посоветуете?

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28