Составная форма с выводом данных в браузер на jQuery / PHP. Как показать входные данные? - PullRequest
0 голосов
/ 21 июля 2011

Я пытаюсь создать форму с 3 шагами:

  1. заполните форму
  2. проверить правильность данных (показать ввод)
  3. спасибо

По совету некоторых людей здесь (относительно моего предыдущего вопроса) я изменил свой способ сделать это в основном с PHP + js-validation в основном с js + PHP данными процесса.

Мне нужен совет, как с этим справиться сейчас.

Ранее у меня был PHP if / else, который определял, какой шаг показывать, и сохранял данные в $ _SESSION для 2-го шага и возможные исправления обратно на 1-м шаге.

Теперь мне интересно, действительно ли мне нужны два вызова ajax (сначала для обработки данных, чтобы показать их - 2-й шаг формы использует $ _SESSION для отображения ввода данных на 1-м шаге; второй для генерации электронной почты и pdf с заданным data - то же $ _SESSION, что и step2).

Возможно, хорошим решением было бы поместить данные с помощью javascript во 2-й шаг, а также использовать $ _SESSION только при окончательной обработке и генерации.

Что общего / ваш подход к этой проблеме?

1 Ответ

1 голос
/ 21 июля 2011

Вот нормальный поток:

Пользователь загружает страницу с формой на ней. Заполняет это. Представляет это.

Вы можете проверить каждое поле по мере его заполнения (мгновенная обратная связь, что приятно с точки зрения пользователя) или проверить с помощью события onSubmit (в jquery $ ('# formID'). Submit). Вы не разрешаете им отправлять, если он не проходит, возвращайте false из функции submit.

Если у них не включен JS (вы можете попытаться запретить им использовать его без JS, но на самом деле они могут просто использовать curl -d "value1=foo&value2=foo2&value3=foo3" <a href="http://example.org/page/" rel="nofollow">http://example.org/page/</a>, чтобы обойти вас), вы должны проверить данные на сервере. , тоже. JS недостаточно.

Если он не проходит проверку сервера, вы можете перенаправить их обратно в форму, используя заголовок Location: <a href="http://example.org" rel="nofollow">http://example.org</a>, или снова отобразить форму в коде на стороне сервера. Если оно прошло, вы можете использовать его (вставить в базу данных, повторить, отправить по электронной почте и т. Д.).

Вы сохраняете данные в своей базе данных и добавляете их в $ _SESSION. Вы отображаете только что введенные данные вместе с кнопкой «Загрузить PDF» или чем-то подобным.

Они нажимают «Скачать PDF».

У вас есть вся необходимая информация и PDF. У вас нет ничего для проверки, но вам нужно использовать информацию $ _SESSION для создания PDF. Вы должны проверить $ _SESSION, чтобы убедиться, что они имеют действительные данные с предыдущих страниц, иначе кто-то может имитировать сообщение на странице и генерировать PDF (хотя, возможно, пустой). Я обычно избегаю использовать данные из $ _SESSION как что-либо, кроме информации о состоянии - я напишу в БД о данных поста (после очистки), но если они находятся в $ _SESSION, то обычно это просто материал, который говорит мне, кто они и хранит другие информация о конфигурации и т. д. В вашем случае я бы написал в БД на первом этапе и теперь использовал бы некоторый идентификатор из $ _SESSION, чтобы извлечь эту запись и создать PDF для ее отправки.

Я думаю, что все ваши проверки могут быть легко выполнены на первом этапе, а затем вы разделяете шаг 2 на доставку, основываясь на действительности первого шага.

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