![]() |
Модераторы: korob2001, ginnie |
![]() ![]() ![]() |
|
Leshik |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 1.10.2006 Репутация: нет Всего: нет |
Здрасте =)
Помогите пожалуйста. Написал скрипт простейшей гостевой книги(практически списано из "Изучаем Perl")/
После того, как я ввожу имя и сообщение и жму на кнопку "отправить", если я обновляю страницу, то те же самые данные записываются ещё раз. И так всё время. Подскажите, пожалуйста, как от этого можно избавиться. Прошу извинить меня, за размещение не в ветке "CGI-программирование"( немного промахнулся ![]() Это сообщение отредактировал(а) Leshik - 6.9.2007, 18:37 |
|||
|
||||
maxim1000 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: нет Всего: 110 |
Perl'а я не знаю, но сталкивался с подобной ситуацией
решил её так: ответом на запрос является перенаправление на страницу completed.html (к примеру), на которой написано что-то в духе "выполнено" даже если пользователь будет обновлять её, ему просто каждый раз будут писать "выполнено" -------------------- qqq |
|||
|
||||
Leshik |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 1.10.2006 Репутация: нет Всего: нет |
Спасибо.
О таком решении я тоже задумывался, но всё же может быть есть ещё какой-нибудь способ? |
|||
|
||||
comtat |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1310 Регистрация: 2.5.2006 Где: Россия, Казань Репутация: нет Всего: 71 |
ИМХО редирект на другую страницу самый правильный вариант -------------------- Рожденный в СССР !!! ExtJS - мой фреймворк |
|||
|
||||
StealtH |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 124 Регистрация: 16.9.2004 Репутация: нет Всего: нет |
Имхо, из предложенного выше - самый идельный способ, сам им пользуюсь при любом запросе методом POST.
Как вариант, попробуй в базу писать md5 хеш поста, и потом при новом посте искать по этому ключу, если не найдено - добавляешь пост, если найдено - пишешь об этом пользователю или редиректишь на главную страницу. |
|||
|
||||
Leshik |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 1.10.2006 Репутация: нет Всего: нет |
||||
|
||||
StealtH |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 124 Регистрация: 16.9.2004 Репутация: нет Всего: нет |
Запросто ! man Digest::MD5 Там даже примеры есть. Если вкратце, то делаешь хэш(md5_hex($post)) и пишешь его в отдельный файл, потом при добавлении поста формируешь md5-сумму поста и ищешь подобную в файле с хэшами.
Примерно так, но такой подход не есть зергуд в плане быстродействия и ресурсов, особенно когда количество записей в гесте будет больше 5-6 тысяч. |
||||
|
|||||
SHAmanovi4 |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 63 Регистрация: 13.9.2006 Где: почти мск Репутация: нет Всего: нет |
А я делаю self-redirect. То есть, перенаправляю на ту же страницу. Если нужно вывести сообщение, то делаю так:
А при выводе формы и гостевой палю, есть ли этот параметр.
Это сообщение отредактировал(а) SHAmanovi4 - 7.9.2007, 14:30 |
||||
|
|||||
Leshik |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 1.10.2006 Репутация: нет Всего: нет |
Всем спасибо
![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Perl" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |