Javascript-форум (https://javascript.ru/forum/)
-   Серверные языки и технологии (https://javascript.ru/forum/server/)
-   -   вернуть ссылку на САМУЮ-предыдущую страницу (https://javascript.ru/forum/server/42260-vernut-ssylku-na-samuyu-predydushhuyu-stranicu.html)

Round 19.10.2013 14:01

вернуть ссылку на САМУЮ-предыдущую страницу
 
Согласен - глупое название - долго думал как тему назвать... :blink:

Ситуация такая...

Есть несколько поп-ап форм, на этих формах есть возможность нажать на кнопку SUBMIT и есть возможность просто закрыть форму ничего не заполняя (не отправляя).

Из каждой этой формы я сделал редирект на предыдущую страницу, и по сабмиту и по закрытию.

<input type="hidden" name="redirect" value="<?php echo $_SERVER['HTTP_REFERER']; ?>" />

<a href="<?php print $_SERVER['HTTP_REFERER'];?>" class="close" title="Close">Close</a>


Но есть проблема...

Например, если юзер с главной вышел на попап формы-логина и там, по какой то причине, получил сообщение об ошибке в заполнении формы, то линк в $_SERVER['HTTP_REFERER'] меняется на линк страницы с шаблоном формы-логина.

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

Или я где то напутал, или нужно другим способом его редиректить на страницу, с которой он попал на форму изначально. Есть и другие формы, те формы вообще собираются циклом, но везде есть "submit" и есть "close".

Как сделать корректный редирект на страницу, с которой пришел юзер в форму?

Deff 19.10.2013 14:31

Round,
Запоминать адрес при первом клике на переход на страницу с формой в куках или LocalStorage, лучше в куках на сессию.
При последующих кликах и переходах проверять - есть ли адрес в куках, удалять кук при успешном завершении или переходе на начальный адрес в куках

Round 19.10.2013 14:36

Спасибо Deff

А проще никак? Кроме того, если куки отключены, то человек будет ходить по кругу до скончания трафика... :)

danik.js 19.10.2013 14:42

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

Deff 19.10.2013 14:58

Цитата:

Сообщение от Round
Кроме того, если куки отключены

Типично формы без кук игнорируются - если конечно авторизация -Вам не пофег. Достаточно просто отослать юзера в гугл на разъяснения про кукисы
Хотя решение danik.js, более верное, при доступе к движку

Round 19.10.2013 15:02

Deff, согласен и по первому и по второму.


danik.js, спасибо за идею... сейчас попробую реализовать.


Часовой пояс GMT +3, время: 15:23.