Отслеживание данных при проверке многостраничных форм через PHP - PullRequest
0 голосов
/ 28 февраля 2012

Я работаю над проектом PHP, в котором клиенту требуется отправка многостраничных данных.Например, вот процесс, форма которого выглядит следующим образом:

  1. Создать новый объект.
  2. Определить тип объекта.
  3. Заполнить поля, относящиеся к объекту.

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

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

Ответы [ 2 ]

1 голос
/ 28 февраля 2012

Существует 2 разных подхода.

  1. Если пользователю разрешено заполнять сразу 2 формы, просто добавьте уникальный идентификатор для каждого и отслеживайте их в сеансе.

  2. Если нет - все становится проще: просто следите за пройденными шагами и просто отображайте предупреждение в случае ранее пройденного шага.

0 голосов
/ 28 февраля 2012

Это проблема потока страниц.НЕ используйте сессию, чтобы иметь дело с этим.Вы правы в том, что вкладки или новые окна могут вызвать проблемы.

Я не совсем понимаю смысл этого бита:

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

Звучит как «обратный возврат», но почему?POST данные со страницы в контроллер (или сценарий), который выполняет необходимую проверку ss.После проверки обработайте необходимые данные и определите, что должен содержать следующий шаг.Затем отправьте форму ввода для следующего шага вниз в ответе.Повторяйте, пока не закончите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...