2013-07-11 4 views
2

Я использую шаблон PRG в приложении, которое я создаю. Существует многостраничная форма, в которой мы проверяем и сохраняем информацию в базе данных при отправке формы каждой страницы. Если представление проходит проверку, мы перенаправляем пользователя на следующую страницу формы. Это работает так, как вы ожидали, и если используемая обратная обратная кнопка переходит на проницаемую страницу без повторных предупреждений и т. Д.PHP Post/Redirect/Get Back Button Issue

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

Проблема заключается в том, что если пользователь делает повторные сообщения, которые не проверяют, история с кнопками назад загружается с одной и той же страницей, поэтому им нужно нажать кнопку «Назад» несколько раз, чтобы вернуться к ожидаемой предыдущей странице. То, что я ищу, - это способ сделать что-то вроде window.location.replace javascript при перенаправлении на отказ, чтобы пользователю не приходилось несколько раз нажать кнопку «Назад», чтобы вернуться на предыдущую страницу.

Возможно ли это в PHP с заголовком или мне нужно будет использовать javascript для этого?

ответ

1

Один из вариантов - отправить через AJAX для проверки, если проверка прошла правильно, а затем на самом деле отправить страницу. В противном случае отображать сообщения об ошибках и оставаться на одной странице.

+0

Это то, о чем я думал, но этот проект представляет собой разделение большой формы на 5 «соединенных вместе» форм, и есть тонна старого кода, и это действительно единственная проблема, с которой я сталкиваюсь. Если мы решим полностью реорганизовать приложение, это, вероятно, то, как я его напишу, но у меня нет ресурсов для этого в это время. –

+0

После должного рассмотрения и много экспериментов я пришел к выводу, что на самом деле это лучший способ сделать это. –