Отображение сообщений на странице успеха формы - PullRequest
2 голосов
/ 19 января 2009

Предположим, у вас есть страница A, которая является «домашней» страницей веб-приложения. Предположим, есть вторая страница B, которая содержит форму. После успешной обработки формы пользователь возвращается на страницу A. Если вам нужно отобразить сообщение об успешном выполнении предыдущего действия (успешная отправка формы), каков наилучший способ получить это сообщение для отображения?

Я сузил это до:

  1. Передайте ключ сообщения на страницу A. Затем страница A будет использовать ключ для получения сообщения откуда-либо.

  2. Передайте сообщение на страницу A. Однако, похоже, это открывает сайт для XSS, а что нет.

  3. При обработке формы сохраняйте сообщение в области сеанса до перенаправления на страницу A. Затем страница A может извлечь и удалить сообщение из сеанса и отобразить его на экране.

Я что-то упустил? Каков предпочтительный способ выполнить эту задачу?

Ответы [ 4 ]

2 голосов
/ 19 января 2009

Я бы никогда не использовал сеанс для такой задачи. Это безответственно и разрушает поток логики. Вместо этого вы можете иметь заранее определенный список ошибок и просто передать код ошибки через параметры запроса. Если вам действительно нужно каждый раз отправлять новые пользовательские данные, я бы посоветовал отправить их через GET или POST.

1 голос
/ 19 января 2009

полностью согласен с d03boy здесь по тем же причинам. Хранение данных, относящихся к определенному представлению в сеансе, плохо работает, когда ваши пользователи начинают открывать несколько окон.

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

0 голосов
/ 19 января 2009

Я согласен с d03boy и pilif: метод 3 не годится для использования сеанса и будет испорчен в случае нескольких окон, и, как вы сказали, метод 2 открывается для XSS.

Сохраните различные сообщения в файле или в базе данных и передайте ключ в сценарий. Если вам нужно настроить свои сообщения, передайте данные с помощью пост-запроса (и подтвердите его для предотвращения XSS) и используйте шаблоны для замены значений в сообщении.

0 голосов
/ 19 января 2009

Я обычно использую метод 3. Если страница хочет отобразить сообщение после перенаправления, она устанавливает переменную сеанса. Затем код, который находится в моем базовом классе (выполняется для каждой страницы запросов), проверяет, есть ли сообщение для отображения, отображает его и очищает переменную сеанса сообщения.

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