<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xml:base="http://www.dserg.com" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
 <title>Проектирование сайтов - Бич F5. Как бороться с повторной отправкой данных / scourge - Comments</title>
 <link>http://www.dserg.com/f5-scourge-2007-06-14.html</link>
 <description>Comments for &quot;Бич F5. Как бороться с повторной отправкой данных / scourge&quot;</description>
 <language>ru</language>
<item>
 <title>Можно сделать</title>
 <link>http://www.dserg.com/f5-scourge-2007-06-14.html#comment-1284</link>
 <description>&lt;p&gt;Можно сделать так:&lt;/p&gt;
&lt;p&gt;&amp;lt;script language=&amp;quot;JavaScript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; function checkTopicForm(form)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {form.submit();}&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;form method=&amp;quot;post&amp;quot; onsubmit=&amp;quot;checkForm(this)&amp;quot;&amp;gt;&lt;/p&gt;
&lt;p&gt;...&lt;br /&gt;
&amp;lt;/form&amp;gt;&lt;/p&gt;
&lt;p&gt;А в скрипте обработчике уже Header&#039;ом делать редирект на нужную страницу&lt;/p&gt;
</description>
 <pubDate>Mon, 02 Jul 2007 00:32:40 +0400</pubDate>
 <dc:creator>snow_wons</dc:creator>
 <guid isPermaLink="false">comment 1284 at http://www.dserg.com</guid>
</item>
<item>
 <title>Лично я ещё не</title>
 <link>http://www.dserg.com/f5-scourge-2007-06-14.html#comment-1162</link>
 <description>&lt;p&gt;Лично я ещё не сталкивался с тем, что бы Header(&#039;Location: http://www.site.com/.....&#039;); не отрабатывал. Просто в случае ошибки надо снова кидать на форму этим хедером и отображать ошибку, как вариант: Header(&#039;Location: http://www/site.com.....&amp;amp;error=errorCode&#039;);&lt;/p&gt;
&lt;p&gt;P.S. Лично у меня ошибки передаються через сессию.&lt;/p&gt;
</description>
 <pubDate>Mon, 25 Jun 2007 15:42:00 +0400</pubDate>
 <dc:creator>Psih</dc:creator>
 <guid isPermaLink="false">comment 1162 at http://www.dserg.com</guid>
</item>
<item>
 <title>Спасибо за</title>
 <link>http://www.dserg.com/f5-scourge-2007-06-14.html#comment-1131</link>
 <description>&lt;p&gt;Спасибо за отличную подсказку.&lt;/p&gt;
</description>
 <pubDate>Tue, 19 Jun 2007 21:04:17 +0400</pubDate>
 <dc:creator>Дмитрий Сергеев</dc:creator>
 <guid isPermaLink="false">comment 1131 at http://www.dserg.com</guid>
</item>
<item>
 <title>Можно помимо</title>
 <link>http://www.dserg.com/f5-scourge-2007-06-14.html#comment-1130</link>
 <description>&lt;p&gt;Можно помимо текста в базе хранить хеш этого текста и соответственно повторяемость сообщения искать уэе по его хешу. ИМХО это будет быстрее, чем индекс по текту...&lt;/p&gt;
</description>
 <pubDate>Tue, 19 Jun 2007 17:54:23 +0400</pubDate>
 <dc:creator>vitalaw</dc:creator>
 <guid isPermaLink="false">comment 1130 at http://www.dserg.com</guid>
</item>
<item>
 <title>Ну может это и</title>
 <link>http://www.dserg.com/f5-scourge-2007-06-14.html#comment-1123</link>
 <description>&lt;p&gt;Ну может это и не бич никакой :) Но я часто сталкиваюсь.&lt;/p&gt;
</description>
 <pubDate>Fri, 15 Jun 2007 19:01:35 +0400</pubDate>
 <dc:creator>Дмитрий Сергеев</dc:creator>
 <guid isPermaLink="false">comment 1123 at http://www.dserg.com</guid>
</item>
<item>
 <title>Ммм, по-моему</title>
 <link>http://www.dserg.com/f5-scourge-2007-06-14.html#comment-1122</link>
 <description>&lt;p&gt;Ммм, по-моему проблема высосана из пальца :) Ну хорошо если я вспомню пару случаев за последние пол года, где вот такой косяк был. Но сколько я лазил и сколько я формы отправлял. Нет такой проблемы :)&lt;/p&gt;
</description>
 <pubDate>Fri, 15 Jun 2007 18:40:12 +0400</pubDate>
 <dc:creator>Dead Krolik</dc:creator>
 <guid isPermaLink="false">comment 1122 at http://www.dserg.com</guid>
</item>
<item>
 <title>Защита от флуда</title>
 <link>http://www.dserg.com/f5-scourge-2007-06-14.html#comment-1120</link>
 <description>&lt;p&gt;Защита от флуда -- это хорошо, но лишних манипуляции с БД лучше избегать. Вариант с фиксацией уникального id формы в сессии как раз позволяет обойтись без лишних запросов.&lt;/p&gt;
&lt;p&gt;Недостатком, конечно, может быть необходимость заводить сессию, и в некоторых случаях бороться с ее идентификатором, приписанным к URL.&lt;/p&gt;
</description>
 <pubDate>Fri, 15 Jun 2007 01:53:27 +0400</pubDate>
 <dc:creator>Дмитрий Сергеев</dc:creator>
 <guid isPermaLink="false">comment 1120 at http://www.dserg.com</guid>
</item>
<item>
 <title>$_SERVER[&quot;REMOTE_ADDR&quot;]</title>
 <link>http://www.dserg.com/f5-scourge-2007-06-14.html#comment-1119</link>
 <description>&lt;p&gt;$_SERVER[&quot;REMOTE_ADDR&quot;] заносим в базу, при отправке проверяем - лежит ли оно в базе, если да - то сколько времени прошло, сравниваем с таймаутом - больше, гут, удаляем из базы и принимаем форму. Одновременно и от флуда защита&lt;/p&gt;
</description>
 <pubDate>Fri, 15 Jun 2007 01:23:38 +0400</pubDate>
 <dc:creator>NightWriter</dc:creator>
 <guid isPermaLink="false">comment 1119 at http://www.dserg.com</guid>
</item>
<item>
 <title>А у него</title>
 <link>http://www.dserg.com/f5-scourge-2007-06-14.html#comment-1116</link>
 <description>&lt;p&gt;А у него вариантов - аж 1. Нажать F5. Опять же из практики: случаев с запаздалым откликом на порядки больше случаев с кликом и нулевым откликом.&lt;/p&gt;
</description>
 <pubDate>Thu, 14 Jun 2007 17:19:33 +0400</pubDate>
 <dc:creator>4m@t!c</dc:creator>
 <guid isPermaLink="false">comment 1116 at http://www.dserg.com</guid>
</item>
<item>
 <title>А что будет,</title>
 <link>http://www.dserg.com/f5-scourge-2007-06-14.html#comment-1115</link>
 <description>&lt;p&gt;А что будет, если первый запрос не дойдет, а кнопка на форме заблокируется?&lt;/p&gt;
</description>
 <pubDate>Thu, 14 Jun 2007 11:55:09 +0400</pubDate>
 <dc:creator>Дмитрий Сергеев</dc:creator>
 <guid isPermaLink="false">comment 1115 at http://www.dserg.com</guid>
</item>
<item>
 <title>Деол в том, что</title>
 <link>http://www.dserg.com/f5-scourge-2007-06-14.html#comment-1114</link>
 <description>&lt;p&gt;Деол в том, что там идет поиск по большой базе данных и что бы нетерпеливый пользователь не создавал лишнюю нагрузку на сервер - сделанно именно так. подчеркну, что это не защита сервера от лишней нагрузки. Это просто маленький плюсик для сервера при нормальной, ежедневной эксплуатации.&lt;/p&gt;
</description>
 <pubDate>Thu, 14 Jun 2007 11:51:52 +0400</pubDate>
 <dc:creator>4m@t!c</dc:creator>
 <guid isPermaLink="false">comment 1114 at http://www.dserg.com</guid>
</item>
<item>
 <title>Проблема в том,</title>
 <link>http://www.dserg.com/f5-scourge-2007-06-14.html#comment-1113</link>
 <description>&lt;p&gt;Проблема в том, что отклик сервера выполняется продолжительный промежуток времени и до перенаправления  страницы дело не доходит.&lt;/p&gt;
</description>
 <pubDate>Thu, 14 Jun 2007 11:47:48 +0400</pubDate>
 <dc:creator>4m@t!c</dc:creator>
 <guid isPermaLink="false">comment 1113 at http://www.dserg.com</guid>
</item>
<item>
 <title>Скажем, сервер,</title>
 <link>http://www.dserg.com/f5-scourge-2007-06-14.html#comment-1110</link>
 <description>&lt;p&gt;Скажем, сервер, на котором работает этот сайт, иногда на отправку формы возращает пустую страницу. Если нажимаешь F5, получаешь дубль. Редирект здесь, кажется, не спасет.&lt;/p&gt;
</description>
 <pubDate>Thu, 14 Jun 2007 11:27:13 +0400</pubDate>
 <dc:creator>Дмитрий Сергеев</dc:creator>
 <guid isPermaLink="false">comment 1110 at http://www.dserg.com</guid>
</item>
<item>
 <title>Тоже должно</title>
 <link>http://www.dserg.com/f5-scourge-2007-06-14.html#comment-1109</link>
 <description>&lt;p&gt;Тоже должно нормально работать. Только немного сложновато. Вариант с уникальным id формы и сессиями выглядит легче и надежнее.&lt;/p&gt;
</description>
 <pubDate>Thu, 14 Jun 2007 11:24:09 +0400</pubDate>
 <dc:creator>Дмитрий Сергеев</dc:creator>
 <guid isPermaLink="false">comment 1109 at http://www.dserg.com</guid>
</item>
<item>
 <title>Ну ребят...</title>
 <link>http://www.dserg.com/f5-scourge-2007-06-14.html#comment-1108</link>
 <description>&lt;p&gt;Ну ребят... загнули.&lt;br /&gt;
Редирект делается после успешного запроса. И усе. Если редиректа нет, юзер go back и submit. Ну или f5, если догадается.&lt;/p&gt;
</description>
 <pubDate>Thu, 14 Jun 2007 11:17:43 +0400</pubDate>
 <dc:creator>lusever</dc:creator>
 <guid isPermaLink="false">comment 1108 at http://www.dserg.com</guid>
</item>
<item>
 <title>Бич F5. Как бороться с повторной отправкой данных / scourge</title>
 <link>http://www.dserg.com/f5-scourge-2007-06-14.html</link>
 <description>&lt;p&gt;Когда человек заполняет форму и нажимает на кнопку «Отправить», может случиться всякое. Например, серверная часть может нормально отработать, а ответ клиенту не дойдет. Что мы (пользователи) тогда делаем? Ясное дело, нажимаем F5. Запрос отправляется еще разок с теми же данными. Серверная часть снова отрабатывает и на это раз возвращает ответ -- страницу с продублированным комментарием (новостью, товаром, постом на форуме). Сталкивались с этим явлением?&lt;/p&gt;
&lt;p&gt;Как же распространенную проблему решить? У меня четыре варианта.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.dserg.com/f5-scourge-2007-06-14.html&quot;&gt;Читать дальше...&lt;/a&gt;&lt;/p&gt;</description>
 <comments>http://www.dserg.com/f5-scourge-2007-06-14.html#comment</comments>
 <category domain="http://www.dserg.com/tags/ajax">AJAX</category>
 <category domain="http://www.dserg.com/tags/cms">CMS</category>
 <category domain="http://www.dserg.com/tags/javascript">Javascript</category>
 <category domain="http://www.dserg.com/tags/word-press">Word Press</category>
 <category domain="http://www.dserg.com/tags/wordpress">Wordpress</category>
 <category domain="http://www.dserg.com/tags/wordpress_rus">Вордпресс</category>
 <category domain="http://www.dserg.com/tags/blog-engine">Движок для блога</category>
 <category domain="http://www.dserg.com/tags/site-engine">Движок для сайта</category>
 <category domain="http://www.dserg.com/tags/interface-design">Дизайн интерфейсов</category>
 <category domain="http://www.dserg.com/tags/interface">Интерфейс</category>
 <category domain="http://www.dserg.com/tags/interface-design_2">Проектирование интерфейсов</category>
 <category domain="http://www.dserg.com/tags/cms_rus2">Система управления контентом</category>
 <category domain="http://www.dserg.com/tags/cms_rus">Система управления сайтом</category>
 <category domain="http://www.dserg.com/tags/form">Формы</category>
 <category domain="http://www.dserg.com/technical-issues">Разнокалиберные статьи с техническим уклоном * technical issues</category>
 <pubDate>Thu, 14 Jun 2007 00:29:25 +0400</pubDate>
 <dc:creator>Дмитрий Сергеев</dc:creator>
 <guid isPermaLink="false">140 at http://www.dserg.com</guid>
</item>
</channel>
</rss>
