отключил captcha, появилась проблема

#
отключил captcha, появилась проблема
Здравствуйте

отключил captcha при добавлении комментария о товаре, заменив в ТДС Интернет-магазин строку

Цитата:
if ($site_user_id > 0 || $Captcha->ValidCaptcha(to_str($_POST['captcha_key']), to_str($_POST['captcha_keystring'])))


на просто

Цитата:
if (true)


обрезал шаблон добавления комментария оставив только звездочки оценки, и удалил поля с именем, фамилией и почтой

оценка выставляется, но после первичного выставления оценки, стоит обновить страницу как она дублируется, то есть даже БЕЗ нажатия на звездочки и БЕЗ нажатия на опубликовать, просто по нажатию F5 отзыв отправляется повторно, что приводит к неадекватному отображению рейтинга товара

скажите пожалуйста, что\где нужно исправить ?

Модератор
#
Re: отключил captcha, появилась проблема
r2d2,
Все верно, у Вас еще раз отправляются данные POST-ом и вносятся в базу. После добавления делайте редирект на нужную страницу, тогда нажатие F5 не будет приводить к повторной отправке.
#
Re: отключил captcha, появилась проблема
после добавление комментария я оказываюсь на странице товара, так и должно быть, куда делать редирект ?

вот переработанный шаблон добавления комментария

Цитата:
   <!-- Шаблон вывода добавления комментария -->
   <xsl:template name="AddCommentForm">
      <xsl:param name="comment_id" select="0"/>
      
      <div class="">
         <!--Отображение формы добавления комментария-->
         <form action="{/document/url}" name="comment_form_0{comment_id}" method="post">
            <!-- Авторизированным не показываем -->
            <xsl:if test="/shop/user_id = 0">
               <p>
                  <div id="error_email{$comment_id}"></div>
               </p>
            </xsl:if>
<table border="0" width="100%" height="100%" cellpadding="0" cellspacing="0">
<tr>
<td>Ваша оценка</td>
<td>
               <input type="hidden" name="shop_comment_grade" value="0"/>
               <xsl:variable name="ul_id">
                  <xsl:choose>
                     <xsl:when test="comment_id > 0"><xsl:value-of select="comment_id"/>_stars</xsl:when>
                     <xsl:otherwise>0_stars</xsl:otherwise>
                  </xsl:choose>
               </xsl:variable>
               
               <ul id="{$ul_id}" class="stars">
                  <li onclick="set_rate(this.id, this.id)" onmouseover="set_rate(this.id, '-1'" onmouseout="set_rate(this.id, 0)" id="{comment_id}1_star_1"></li>
                  <li onclick="set_rate(this.id, this.id)" onmouseover="set_rate(this.id, '-1'" onmouseout="set_rate(this.id, 0)" id="{comment_id}2_star_2"></li>
                  <li onclick="set_rate(this.id, this.id)" onmouseover="set_rate(this.id, '-1'" onmouseout="set_rate(this.id, 0)" id="{comment_id}3_star_3"></li>
                  <li onclick="set_rate(this.id, this.id)" onmouseover="set_rate(this.id, '-1'" onmouseout="set_rate(this.id, 0)" id="{comment_id}4_star_4"></li>
                  <li onclick="set_rate(this.id, this.id)" onmouseover="set_rate(this.id, '-1'" onmouseout="set_rate(this.id, 0)" id="{comment_id}5_star_5"></li>
               </ul>
</td>
<td>
            <xsl:if test="$comment_id != 0">
               <input type="hidden" name="comment_parent_id" value="{comment_id}"/>
            </xsl:if>

               <input class="searchimg" id="submit_email{$comment_id}" type="image" border="0" src="/img/ok.png" name="submit_comment" value="Опубликовать"/>
</td>
</tr>
</table>
         </form>
      </div>
   </xsl:template>


где и главное куда делать редирект чтобы переменные POST обнулились ??? нужно чтобы после голосования пользователь оставался на той же странице товара

и POST это же не GET, как какой-то другой url решит проблему ?
#
Re: отключил captcha, появилась проблема
r2d2 писал(а):
после добавление комментария я оказываюсь на странице товара, так и должно быть
- да, конечно, по умолчанию так и должно быть.
r2d2 писал(а):
куда делать редирект?
- можно делать редирект на ту же самую страницу, на которой посетитель сайта находится.
r2d2 писал(а):
где и главное куда делать редирект чтобы переменные POST обнулились?
- в коде типовой динамической страницы магазина после того, как происходит вставка комментария в базу данных. Посмотрите как у нас реализовано добавление сообщения на форум, например(в коде соответствующей типовой динамической страницы). Там реализован аналогичный функционал.
r2d2 писал(а):
и POST это же не GET, как какой-то другой url решит проблему?
- почему же другой URL? Редирект можно делать на ту же самую страницу, а проблему это решит потому, что после перехода на нее в браузере уже не будет информации о заполненной форме, и еще раз на сервер он ее не отправит.
Авторизация