Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Веб-программирование > PHP
Перезагрузить страницу Повторная отправка формы.
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
chaos chaos вне форума
Новичок
 
Сообщений: 6
Сказал(а) спасибо: 1
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 06.07.2012
Exclamation Повторная отправка формы. - 03.11.2012, 05:00

Новостной сайт (написан по PHP). Сервер (LAMP) старенький , часто бывает перегружен и сайт начинает тормозить или просто сильно удален от пользователя, из-за чего тоже возникает задержка. Пользователь прочитал новостную статью и решил оставить комментарий. Заполнил форму и нажал отправить, но т.к. сервер тормозит страница обновилась не сразу и пользователь еще несколько раз пытается создать комментарий (отправлял форму). В итоге он несколько раз создал один и тот же комментарий. Подскажите, пожалуйста, как можно избежать повторной обработки запроса, чтобы, если опираться на данный пример, создавался только 1 комментарий.
Ответить с цитированием
  (#2 (permalink)) Старый
Rius Rius вне форума
Программист
 
Аватар для Rius
 
Сообщений: 7,470
Сказал(а) спасибо: 22
Поблагодарили 944 раз(а) в 928 сообщениях
Регистрация: 27.08.2004
Адрес: Russian Federation
По умолчанию 03.11.2012, 10:33

Скрывать форму после её отправки, показывать изменения на странице после подтверждения от сервера. Ознакомьтесь с AJAX и jQuery.
Ответить с цитированием
  (#3 (permalink)) Старый
chaos chaos вне форума
Новичок
 
Сообщений: 6
Сказал(а) спасибо: 1
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 06.07.2012
По умолчанию 03.11.2012, 14:10

Пример с комментарием это лишь частный случай. Такие проблемы могут быть вообще с любой формой.
Неужели нет универсального средства? Проблема наверняка стара как мир.
С Ajax дружу, но везде его не засунешь, во всяком случае не сказу.
Ответить с цитированием
  (#4 (permalink)) Старый
T1grOK T1grOK вне форума
Member
 
Аватар для T1grOK
 
Сообщений: 767
Сказал(а) спасибо: 8
Поблагодарили 61 раз(а) в 60 сообщениях
Регистрация: 11.04.2009
По умолчанию 03.11.2012, 14:26

1) Делать скрытое поле в котором будет случайное число, записанное скажем в сессию. После отправки считывается это число и сравниваете в сессии. Обновлять это значение только после следующего отображения формы для отправки комментария.
2) Делать ограничение на количество отправок в секунду. Что весьма правильно и логично.
3) После нажатия кнопки делать ее неактивной(+ п.1)


Игры зло и зря потреченое время.
Ответить с цитированием
  (#5 (permalink)) Старый
chaos chaos вне форума
Новичок
 
Сообщений: 6
Сказал(а) спасибо: 1
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 06.07.2012
По умолчанию 03.11.2012, 14:57

Пункт 1 вроде подходит, а нет ли универсального способа отправлять это случайное число вместе с формой, чтобы не менять все формы на сайте?
Ответить с цитированием
Ads.
  (#6 (permalink)) Старый
T1grOK T1grOK вне форума
Member
 
Аватар для T1grOK
 
Сообщений: 767
Сказал(а) спасибо: 8
Поблагодарили 61 раз(а) в 60 сообщениях
Регистрация: 11.04.2009
По умолчанию 03.11.2012, 15:12

Записывать в куки. И сравнивать значение в куки со значением в сессии


Игры зло и зря потреченое время.
Ответить с цитированием
  (#7 (permalink)) Старый
chaos chaos вне форума
Новичок
 
Сообщений: 6
Сказал(а) спасибо: 1
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 06.07.2012
По умолчанию 03.11.2012, 15:33

Цитата:
Сообщение от T1grOK Посмотреть сообщение
Записывать в куки. И сравнивать значение в куки со значением в сессии
Точно точно, совсем про них забыл. Спасибо, попробую.
Ответить с цитированием
  (#8 (permalink)) Старый
chaos chaos вне форума
Новичок
 
Сообщений: 6
Сказал(а) спасибо: 1
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 06.07.2012
По умолчанию 04.11.2012, 03:25

Всем спасибо. Сделал через сессия + куки - все работает.
Ответить с цитированием
Ads
Ответ

Метки
php mysql формы

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
отправка писем zed212 PHP 1 17.04.2012 12:00
Отправка в SSL-поток Konstatine .NET 1 29.02.2012 13:53
SSL. Отправка сообщения. Konstatine .NET 0 13.02.2012 13:28
Отправка результатов формы на е-майл web-programm PHP 6 05.09.2011 18:57
Не проходит повторная инициализация ComboBox Kharkov Visual Basic 4 14.01.2011 11:55
отправка СМС _kT PHP 0 18.07.2008 05:12
Отправка данных из формы на E-mail PowerCat DHTML, JavaScript, VBScript 9 16.02.2008 17:48
Отправка формы на сайт как реализовать STINGRAY Perl 0 19.07.2006 11:04
Отправка пользовательских сообщений из формы в TThread или внутри Thread Alex S. C++ Builder 5 28.11.2005 13:31
Отправка СМС jenyok PHP 9 12.12.2004 13:33
[b]Повторная авторизация[/b] kostyan PHP 1 06.05.2004 19:18
При обращении к компонентам дочерней формы из главной формы программа выдает ошибку AHDPE C++ Builder 6 12.04.2004 12:02



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов