Использование переменных сеанса для поддержки данных формы во время обратной последовательности браузера - PullRequest
0 голосов
/ 05 мая 2011

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

У меня есть кнопка назад, как это:

<button id="backButton">Back</button>

И обработчик кнопки таков:

$('#backButton').live('click',function() {
        window.history.back();
    });

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

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

Как перенести переменные обратно при нажатии кнопки "Назад"?

Ответы [ 2 ]

1 голос
/ 05 мая 2011

Сеннхейзер, я не могу разобраться с вашей конкретной ситуацией, но я могу разобраться с вашей проблемой.Вот мои мысли:

  1. Когда пользователь нажимает «назад», он обычно загружает страницу из кэша браузера.Ergo, браузер не просит PHP повторно проанализировать страницу с переменными сеанса.Попробуйте нажать shift или Control F5, чтобы повторно запросить страницу с сервера.
  2. # 1, успешно или нет, не имеет значения , поскольку ни один пользователь не собирается обновлять страницу, думая, что егорезультаты вернутся.Вы должны положиться на браузер ИЛИ JavaScript.
  3. Краткий обзор этого вопроса заставляет меня думать, что следующие решения - ваш лучший выбор:

Вы можете либо ..

  • Используйте JavaScript для извлечения данных формы и сохранения содержимого в файл cookie, который будет загружен (безопасно! Ищите XSS ..) при загрузке формы.Вы, кажется, используете jQuery, это поможет!Я не уверен в безопасности, но читайте $.('#formID').serialize().

  • Положитесь на собственные компоненты браузера, сохраняющие форму.Выполняя обзор переполнения стека, я нашел похожий вопрос, ответ на который может помочь вам. В итоге, если ваши формы автоматически генерируются JS или , страница не-cacheable (вероятно, https, или ваш сервер говорит, что no-cache), вы не можете полагаться на браузер для сохранения формы.

Дайте мне знать, помогли ли мои ответы.

0 голосов
/ 05 мая 2011

# 1 ответа SoreThumb - это то, что я предположил, может происходить в моем комментарии.

Но если это так, это, безусловно, не имеет значения.

Вы можете сказать браузеру не кэшировать его при первой загрузке.

См. thisсвязанный вопрос , это руководство и это обсуждение .

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