HTTP_REFERER при переходе по header

Ashotovich

Новичок
HTTP_REFERER при переходе по header

Всем привет.
Подскажите, плиз, из-за чего може случиться следующее: при переходе между страницами с помощью header, значение $_SERVER['HTTP_REFERER'] не изменяется на реальное имя страницы, с которой идет переход?
Например, есть форма, где я что-то меняю, нажимаю "ОК" и происходит вызов скрипта, который полученные данные из формы разсовывает по БД, а потом по header возвращается обратно в форму. Так вот, если на странице формы запросить $_SERVER['HTTP_REFERER'], его значение будет адресом самой формы, а не скрипта, с которого на эту форму происходил переход.

Это я к тому, что мне бы хотелось на странице формы обрабатывать адрес страницы, с которой на нее перешли, дабы, если это - адрес скрипта, значит скрипт прошел успешно, и выводится alert('Операция прошла успешно').

Заранее спасибо за помощь.
 

Фанат

oncle terrible
Команда форума
а прикинь - эта переменная вообще пустая может быть!
 

Ashotovich

Новичок
Параметры передавал. Вместо "header("Location: ../form.php");" писал "header("Location: ../form.php?i=1");" - бесполезно. Видимо, придется извращаться:

PHP:
print "<a id=\"back\" style=\"display:none\" href=\"../form.php\">referer</a>";
print "<script language=\"JavaScript\">back.click();</script>";
Так работает. Мде. То есть при переходе по header адрес не запоминается, а по href - запоминается. Бум знать. ;)
 

Ashotovich

Новичок
Да, забыл сказать. При переходе JavaScript-овским document.location.href="......." скрипт вообще теряет HTTP_REFERER адрес, то бишь переменную изничтожает. Причем напрочь. Так что при session.referer_check = On в php.ini, ну или при проверке адреса в скриптах начнутся всякие проблемы. Мде. Это, кстати, к замечанию уважаемого Фаната.
 

Фанат

oncle terrible
Команда форума
они и без этого начнутся
повторяю. часто этот реферер вообще пустой.
не обязан его браузер вообще передавать.

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

Фанат

oncle terrible
Команда форума
"Это я к тому, что мне бы хотелось на странице формы обрабатывать адрес страницы, с которой на нее перешли"

если я правильно понял эту фразу, то это очевидная глупость.
 

Ashotovich

Новичок
Угу. Видимо, придется просто в header-ный адрес вставить еще какой-нибудь GET-параметр. Ну или, в случае паранойи (как у меня), - через POST. Только придется в скрипте форму рисовать.
 

Фанат

oncle terrible
Команда форума
с точки зрения паранойи методы пост и гет абсолютно равны.
если метод пост считается более безопасным, то это выгладит примерно, как страус-параноик.

Зачем рисовать в скрипте форму - я тоже не понял.
Как и способ замены локейшена ПОСТом.

вообще, сколько проблем ради того, чтобы вывести совершенно ненужный алерт над совершенно ненужной формой!
Тебе что - нужно эту форму снова заполнять?
Ну тогда и локейться на страничку, которая не алерт будет выдавать, а на кототорой ссылка будет - "Заполнить форму снова". По количеству кликов будет ровно столько же, а по уму - несоизмеримо.

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

Ashotovich

Новичок
Если исходить из количества кликов, то вместо алерта внизу формы просто выводится надпись, что все ок. При релоаде формы надпись исчезает - параметр не передан. Финита. ;)
 
Сверху