![]() |
|
Модераторы: korob2001, ginnie |
![]()
|
|
| r |
|
|||
|
Unregistered |
Суть проблемы вот в чем, скрипт генерит формы, всякие html страницы показывает, и что самое плохое, пользователь может нажать в браузере кнопочку и вернутся скажем на предыдущую форму. Это не есть гуд. Я задавал уже этот вопрос, и мне посоветовали обратится к модулю Session.pm, модуль впендюрил в проект, вот только теперь не знаю как его использовать с этой целью. Подскажите как нормальные люди так делают?
|
|||
|
||||
| sharq |
|
|||
![]() Perl Liker ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 13.12.2004 Где: Ростов-на-Дону Репутация: 2 Всего: 28 |
r можешь отключить или заблокировать запись в журнал посещений, т.е. кнопочку назад, с помощью js.
С помощью модуля CGI::Session можешь запоминать посещенные страницы пользователем, записывая инфо в сессию, а дальше с этой инфой можешь делать все что захочешь: блокировать, создавать самому ссылку назад на перезагрузку страницы и т.п. Читай CGI::Session::Cookbook, там есть пример сохранения истории в сессию. Добавлено @ 00:10 Пора зарегистрироваться!!! -------------------- [color=gray]There's More Than One Way To Do It[/color] |
|||
|
||||
| r |
|
|||
|
Unregistered |
А какой смысл? В инете редко бываю когда деньги на мобиле есть. |
|||
|
||||
| r |
|
|||
|
Unregistered |
Извини, как заблокировать запись? А если у него js не поддерживаются? Покажи небольшой кусок кода как блокировать, а то моя твоя не понимай. |
|||
|
||||
| r |
|
|||
|
Unregistered |
В принципе, можно выдавать пользователю код 204, и тогда страница не появится. Но проблемма у меня вот в чем, у меня постоянно выдается один и тот-же заголовок:
Можно конечно заблокировать одну из форм, но как этак извратится? |
|||
|
||||
| korob2001 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 13 Всего: 61 |
А что за проблема с заголовком? Вот твоё условие в конце программы:
После этого, твоя программа будет возвращать заголовок в зависимости от условия. Или я вопроса не понял??? -------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
|||
|
||||
| r |
|
|||
|
Unregistered |
Я рад что ты появился, сейчас попробую.
|
|||
|
||||
| korob2001 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 13 Всего: 61 |
Пробуй. Да у меня с инетом возникли недоразумения. Неделю как на необитаемом острове просидел. -------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
|||
|
||||
| r |
|
|||
|
Unregistered |
Что-то не получается, конечно получается вставить заголовок в каждую форму это уже плюс, при загрузке первой формы я кладу имя этой формы в сессию, если конечно там ее нет, далее вызывается вторая форма, затем нажимаю на браузере кнопку перехода назад, вижу первую форму и нажимаю на submit и
|
|||
|
||||
| korob2001 |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 13 Всего: 61 |
А как ты поля формы создаёшь? Если с CGI.pm, то прописывай каждому полю параметр override.
Я так понимаю, что ты хочешь избежать повторной отправки формы? Так же на JS, сразу же на событии onMouseUp блокируй кнопку отправки. Вот небольшой пример такой формы:
Здесь сразу же после нажатия блокируется кнопка отправки сообщения и если пользователь жмёт кнопку назад, то его автоматом перекидывает на текущую страницу, т.е. путь назад закрыт. Поэксперементируй, правда я не стал переписывать это всё на манер CGI.pm, думаю ты и сам с этим прекрасно справишься. Это сообщение отредактировал(а) korob2001 - 9.9.2005, 02:57 -------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
||||
|
|||||
| r |
|
|||
|
Unregistered |
Не, фигня какая-то, так и не понял куда и что пихать, мне вот подсказали запретить браузеру кешировать результат, а это как? Спасибо.
|
|||
|
||||
| korob2001 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 13 Всего: 61 |
Так, давай сначала и по порядку. Насколько я понял, ты хочешь создать Multi форму и тебе нужно сделать что бы при переходе к каждой последующей форме пользователь не мог вернуться к пред идущей. Я правильно понимаю задачу? Если да, попробуй такой, не большой, пример:
Здесь пользователь должен заполнить 3 формы, в каждой из которых по одному полю. Когда заполнишь хотя бы одну и нажмёшь кнопку "Далее", попробуй вернуться к предидущей. -------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
|||
|
||||
| r |
|
|||
|
Unregistered |
Да блин, пашет здорово пашет. А если будут отключены js?
P.s. Да, ты все-таки по моему мнению лучший специалист. Спасибо. |
|||
|
||||
| korob2001 |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 13 Всего: 61 |
Ну тогда пользователь сможет вернуться, но это бывает крайне редко. Потому никогда не полагайся на языки, которые работают на клиенте, воспринимай их просто как вспомогательные, всё равно делай всевозможные проверки полученной информации на сервере. Но с другой стороны JavaScript поддерживается всеми современными браузерами и отключают его очень редко, к тому же его поддержка включена по умолчанию в каждом браузере, а если и не в каждом, то в большинстве.
Спасибо, я аж застеснялся. -------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
||||
|
|||||
| sharq |
|
|||
![]() Perl Liker ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 13.12.2004 Где: Ростов-на-Дону Репутация: 2 Всего: 28 |
JavaScript - это хорошо, но для полной уверенности необходимо проверять самому (на сервере) данные перед их записью. Например, чтобы один и тот же пользователь не мог каждую секунду редактировать данные, поставить ограничение на редактирование - т.е. защита от так называемого флуда.
Проверка может быть как раз через сессии. Но это уже лирика. -------------------- [color=gray]There's More Than One Way To Do It[/color] |
|||
|
||||
![]()
|
| Правила форума "Perl: CGI программирование" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Perl: разработка для Web | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |