2013-08-25 3 views
0

Я создаю простую многоэкранную форму с использованием codeigniter, но у меня возникают проблемы с тем, как хранить данные и выполнять некоторые задачи на каждом этапе.Многоступенчатая форма в Codeigniter - Redirect

Немного предыстории на то, что он должен делать:

  • земли пользователя на домашней странице с формой и заполняет одно поле vehicle reg number.
  • Затем они направляются на другую страницу, которая потянула их данные относительно их vehicle reg number с помощью запроса curl/xml. Поскольку этот веб-сервис стоит за один запрос, я хочу сделать это только один раз за каждый IP-адрес в день. Кроме того, когда пользователь обновляет страницу, он не должен повторять этот вызов, скорее, данные уже существуют.
  • После того, как пользователь находится на этой странице, они подтверждают, что их данные верны, нажмите следующую и введите их контактные данные.
  • Затем они нажимают кнопку «Отправить» и получают подтверждающее сообщение, и одна запись вставляется в базу данных.

Моей идеей было записать IP-адрес пользователя. проверьте базу данных, чтобы узнать, был ли отправлен запрос с этим ip. Если нет, то пусть это сократится, если да, просто дайте им ручную форму для завершения.

Мой вопрос: как я подхожу к этому, чтобы, когда пользователь переходит на следующий этап, у них есть предыдущие данные. Разделяю ли я каждый раздел отдельную форму, которая передает предыдущие данные, используя скрытые поля? Это кажется логичным способом для меня, поскольку мне нужны только данные, если это полный запрос. Если они уйдут, их данные бесполезны для меня в любом случае.

Если я использую этот подход, как я могу предотвратить освежающую форму, и он пытается снова вызвать через curl?

Заранее благодарим за любую помощь.

+0

содержит ли он конфиденциальные данные? если нет, то многоступенчатая форма javascript будет делать трюк. – itachi

+0

Да, это конфиденциально, и все они должны быть на стороне сервера. Моя основная забота об этом заключается в том, чтобы веб-сервис вызывался только один раз за ip в день. –

+0

1. При отправке 1-го шага формы создайте уникальный идентификатор запроса, по которому каждая запись будет сохранена в сеансе. 2. проверьте, вызвал ли пользователь ip. Если да, то извлеките информацию из базы данных, иначе exec curl и сохраните ее в БД вместе с ip. 3. Позже, когда захотите, вы можете получить все данные в сеансе. 4. используйте базу данных в качестве хранилища для сеанса и сделайте ее постоянной. – itachi

ответ

-1

Мне удалось заставить все это отлично работать с библиотекой сеансов Codeigniter.

+1

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

Смежные вопросы