Переадресация пользователя

E
На сайте с 24.07.2014
Offline
1
684

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

Я так понимаю, узнать урл с которого пришел пользователь можно через referer либо отправить его постом вместе с другими полями формы. А в конце скрипта обработки сделать header('Location: '.$_SERVER['HTTP_REFERER']);

Меня интересует насколько безопасен такой подход(ведь пользователь может прислать вместо рефера что угодно) и как вообще это правильно реализуется?

VHS
На сайте с 28.09.2007
Offline
142
VHS
#1

Как правило к обработчику обращаются с конкретной страницы и на нее же и отсылают обратно.

Комментарии пишутся к чему-то, к какой-то странице.

Реф можно проверить регуляркой.

Ну и последнее - что можно сделать посылом самому себе кривого хидера?

M
На сайте с 04.12.2013
Offline
223
#2

Со страницы с формой можно передавать адрес в скрипт POST-параметром. Лично я предпочитаю выполнять скрипты-обработчики по условию на этой же странице при ее перезагрузке или даже без перезагрузки (AJAX).

Домены и скрипт для коротких ссылок: https://u75.ru/domains-for-shortcuts
SocFishing
На сайте с 26.09.2013
Offline
118
#3

безопасно, ничего страшного тут нет.

а на js

<script>history.back();</script>
★Сервис идентифицирует (https://socfishing.com/?utm_source=searchengines) посетителей вашего сайта и предоставляет их профили ВКонтакте, Телефон, Почта! Цены копеечные, работаем 8 лет.
E
На сайте с 24.07.2014
Offline
1
#4
VHS:
Ну и последнее - что можно сделать посылом самому себе кривого хидера?

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

SocFishing:
<script>history.back();</script>

и чем же мне это поможет в скрипте который обрабатывает форму?

VHS
На сайте с 28.09.2007
Offline
142
VHS
#5

Ну тут имеется в виду, что после обработки запроса выводится страница, которая посредством JS будет выполнять функцию нажатия кнопки назад в браузере. То есть переадресовывать на страницу, с которой был отправлен запрос.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий