За последние 24 часа нас посетили 74305 программистов и 10147 роботов. Сейчас ищет 2251 программист ...

Проблема с отключением повторной отправки формы. Ищу решение

Тема в разделе "PHP для новичков", создана пользователем Dimadima41, 17 янв 2016.

  1. Dimadima41

    Dimadima41 Новичок

    С нами с:
    17 янв 2016
    Сообщения:
    5
    Симпатии:
    0
    В общем, есть сайт, на самописе, в нем настроен поиск, но когда заходишь в товар со страницы поиска и нажимаешь "назад"
    выбивает ощибка ERR_CACHE_MISS.
    Вот сам код станицы где прописанные все формы:
    Код (PHP):
    1. <div class="container">
    2. <div class='clear' style='height: 70px;'></div>
    3. <div class="row clearfix">
    4. <ul class="breadcrumb" style='padding: 20px 20px 0px;'>
    5. <?=build_full_path($id)?>
    6. </ul>
    7. <div class="col-md-12 column">
    8. <div class="col-md-9 column" style='padding: 15px 0px;'>
    9. <div class='block-three' style='margin-bottom: 15px; padding: 5px 15px 0px;'>
    10. <div class='title-item-block' style='text-transform: none; width: 40%; float: left;'>Результаты поиска в разделе</div> 
    11.  
    12. <ul class="sorting" style='width: 152px; margin-left: 20px;'>
    13. <li>
    14. <?php 
    15. $namber = 10;
    16. $price = '';
    17. $brand = ''; 
    18. $top = '';
    19. $nov= '';
    20. $acciyi ='';
    21. $sort=''; 
    22.  
    23. if(isset($_GET) && !empty($_GET)){
    24. //сортировка
    25. if(!empty($_GET['sort'])){
    26. $sort = "order by `sumscidka` ".$_GET['sort'];
    27. }else{$sort = "order by `sumscidka` desc";}
    28.  
    29. // сколько выводить товаров на странице
    30. if($_GET['namber'] == 10){
    31. $namber = 10;
    32. ?>
    33. [url="#"]</strong>[/url]
    34. <?php } 
    35.  
    36. // сколько выводить товаров на странице
    37. if($_GET['namber'] == 20){
    38. $namber = 20;
    39. ?>
    40. [url="#"]</strong>[/url]
    41. <?php }
    42. if($_GET['namber'] == 30){
    43. $namber = 30;?>
    44. [url="#"]</strong>[/url]
    45. <?php }
    46. if($_GET['namber'] == 50){
    47. $namber = 50;?>
    48. [url="#"]</strong>[/url]
    49. <?php } 
    50. if($_GET['namber'] == 100){
    51. $namber = 100;?>
    52. [url="#"]</strong>[/url]
    53. <?php } 
    54. if($_GET['namber'] == 200){
    55. $namber = 200;?>
    56. [url="#"]</strong>[/url] 
    57. <?php } 
    58. if(empty($_GET['namber'])){ 
    59. $namber = 10;?>
    60. [url="#"]</strong>[/url]
    61. <?php }
    62. }else{?>
    63. [url="#"]</strong>[/url]
    64. <?php } ?>
    65. <ul style='width: 152px;'>
    66. <li>[url="?parent_id=<?=$id?>&namber=10"]выводить по 10[/url]</li>
    67. <li>[url="?parent_id=<?=$id?>&namber=20"]выводить по 20[/url]</li>
    68. <li>[url="?parent_id=<?=$id?>&namber=30"]выводить по 30[/url]</li>
    69. <li>[url="?parent_id=<?=$id?>&namber=50"]выводить по 50[/url]</li>
    70. <li>[url="?parent_id=<?=$id?>&namber=100"]выводить по 100[/url]</li>
    71. <li>[url="?parent_id=<?=$id?>&namber=200"]выводить по 200[/url]</li>
    72. </ul>
    73. </li>
    74. </ul>
    75.  
    76. <ul class="sorting">
    77. <li>
    78. <?php 
    79. if($_GET['sort'] == 'asc'){?>
    80. [url="#"]</strong>[/url]
    81. <?php } ?>
    82. <?php 
    83. if($_GET['sort'] == 'desc'){?>
    84. [url="#"]</strong>[/url]
    85. <?php } ?>
    86.  
    87. <?php 
    88. if(empty($_GET['sort'])){?>
    89. [url="#"]</strong>[/url]
    90. <?php } ?>
    91. <ul>
    92. <li>[url="?parent_id=<?=$id?>&sort=desc"]от дорогих к дешевым[/url]</li>
    93. <li>[url="?parent_id=<?=$id?>&sort=asc"]от дешевых к дорогим[/url]</li>
    94. </ul>
    95. </li>
    96. </ul>
    97. <div class='clear'></div>
    98. </div>
    99.  
    100. <?php
    101. if(isset($_POST) && !empty($_POST) ){
    102. if( !empty($_POST['price-asc']) && !empty($_POST['price-desc']) ){
    103. $price = "and (`price` BETWEEN ".$_POST['price-asc']." AND ".$_POST['price-desc'].") ";
    104. }
    105.  
    106. if(!empty($_POST['razdel'])){
    107. //$razdel = implode(",",$_POST['razdel']);
    108. //$parent = "and (parent_id in('".$razdel."') or grand_parent_id in('".$razdel."'))";
    109.  
    110. $i=0;
    111. $parent='';
    112. foreach($_POST['razdel'] as $k=>$v){
    113. $i++;
    114. if($i==1){
    115. $parent.= " and parent_id=".$v." or grand_parent_id=".$v;
    116. }else{
    117. $parent.= " or parent_id=".$v." or grand_parent_id=".$v;
    118. }
    119. }
    120. }
    121.  
    122. if(!empty($_POST['brand'])){
    123. $i=0;
    124. $brand ='and (';
    125. foreach($_POST['brand'] as $k=>$v){
    126. $i++;
    127. if($i==1){
    128. $brand.= " brend='".$v."'";
    129. }else{
    130. $brand.= " or brend='".$v."'";
    131. }
    132. }
    133. $brand .=')';
    134. }
    135.  
    136. if(!empty($_POST['top'])){$top =" and vnalich=1";}
    137. if(!empty($_POST['nov'])){$nov =" and vputi=1";}
    138. if(!empty($_POST['acciyi'])){$acciyi =" and predzakaz=1";} 
    139. }?> 
    140.  
    141. <div class="tabbable block-three" id="tabs-668725" >
    142. <div class="tab-content" style='padding:15px 15px 0px;'>
    143. <div class="tab-pane active" id="panel-490860">
    144. <?php
    145. $frase = $_SESSION['frase'];
    146. if($frase!=''){
    147. $slovo = "and (headline like '%".$_SESSION['frase']."%' or story_text like '%".$_SESSION['frase']."%')";
    148. }
    149.  
    150. $sqlMin = "SELECT min(price) as min_price, max(price) as max_price FROM ".PAGE_STORIES." where published!=0 $brand and (id!= 1033 $parent $slovo $top $nov $acciyi) and type=1 and template=317 ".$sort;
    151. $sqlMin = mysql_query($sqlMin);
    152. $resultPrice = mysql_fetch_array($sqlMin);
    153.  
    154. $minPrice = $resultPrice['min_price'];
    155. $maxPrice = $resultPrice['max_price'];
    156.  
    157.  
    158. //echo $parent;
    159. //$price 
    160. $sql_n = "SELECT * from ".PAGE_STORIES." where published!=0 $price $brand and (id!=1033 $parent $slovo $top $nov $acciyi) and type=1 and template=317 ".$sort;
    161. //echo $sql_n;
    162. $cols = mysql_num_rows(mysql_query($sql_n)); 
    163. if($cols>0){
    164. slide($namber, $sql_n); 
    165. $cnt=0;
    166. foreach($SYS['DOCUMENT']['listed'] as $res){
    167. $cnt++;?>
    168. <a href='<?php echo build_link($res['id'])?>'>
    169. <div class="thumbnail content-tab">
    170. <div class='img-block'>
    171. <img class='picture' src="<?=img($res['picture'],"300x200",1)?>">
    172. </div>
    173. <div class="caption floatLeft">
    174. <h3 class='title-item-block'><?php echo $res['headline']?></h3>
    175. <?php if($res['scidka']!=0 && $res['scidka']!=''){?>
    176. <p class='old-price'><?php echo $res['price']?> грн.</p>
    177. <div class='clear'></div>
    178. <?php } ?>
    179. <p class='text'><?php echo obrez($res['short_text'],200);?></p>
    180.  
    181. <?php if($res['scidka']!=0 && $res['scidka']!=''){?>
    182. <p class='new-price'><?php echo $res['sumscidka']?> грн.</p>
    183. <?php }else{?>
    184. <p class='new-price'><?php echo $res['price']?> грн.</p>
    185. <?php } ?>
    186.  
    187. <?php if($res['scidka']!=0 && $res['scidka']!=''){?>
    188. <p class='scidka'>-<?=$res['scidka']?>%</p>
    189. <?php } ?>
    190. <div class='clear' style='height: 10px'></div>
    191.  
    192. <p>
    193. <span>Артикул: <?php echo $res['articul'];?></span>  <a class="btn btn-primary add" data="<?php echo $res['id']?>">В корзину</a> 
    194. [url="<?php echo build_link($res['id'])?>"]Узнать больше[/url] 
    195. <a style='float:right' class="btn icon-heart"></a>
    196. </p>
    197. </div>
    198. <div class='clear'></div>
    199. </div>
    200. </a>
    201. <?php 
    202. }
    203. }else{
    204. echo "<div>Ничего не найдено.</div>"; 
    205. }?>
    206. </div>
    207. </div>
    208.  
    209. <div class="pagination paging">
    210. <? echo $SYS['DOCUMENT']['list_code'];?>
    211. </div>
    212.  
    213.  
    214. <div class='clear' style='height: 10px;'></div>
    215. </div>
    216.  
    217. </div>
    218.  
    219.  
    220. <div class="col-md-3 column" style='padding: 15px;'>
    221. <? include MAC."filtr.php"; ?>
    222.  
    223. <?php
    224. $sql = "
    225. SELECT 
    226. id,
    227. headline,
    228. picture, 
    229. price,
    230. story_text, 
    231. short_text
    232. FROM
    233. ".PAGE_STORIES."
    234. WHERE
    235. template=317
    236. and vnalich=1
    237. AND 
    238. published>0
    239. ORDER BY RAND() limit 1
    240. ";
    241. $sql = mysql_query($sql); 
    242. $num = mysql_num_rows($sql);
    243. if($num>0){
    244. while($res = mysql_fetch_array($sql)){?>
    245. <div class="thumbnail banner-top">
    246. <div class='img-block'>
    247. <img class='picture' src="<?=img($res['picture'],"300x200",1)?>">
    248. </div>
    249. <div class='clear'></div>
    250. <?php if($res['scidka']!=0 && $res['scidka']!=''){?>
    251. <p class='old-price' style='margin-bottom: -4px; margin-top: 10px;'>
    252. <?php echo $res['price']?> грн.</p>
    253. <p class='new-price'>
    254. <?php echo $res['sumscidka']?> грн.</p>
    255. <p style='margin-top: -10px;' class='scidka floatLeft'>-<?php echo $res['scidka']?>%</p>
    256. <?php }else{?>
    257. <p class='new-price'><?php echo $res['price']?> грн.</p>
    258. <?php } ?>
    259. <div class='clear'></div>
    260. <p>
    261. <a class="btn btn-primary fontSize12 add" data="<?php echo $res['id']?>">В корзину</a> 
    262. [url="<?php echo build_link($res['id'])?>"]Узнать больше[/url] 
    263. <a style='float:right; width: 30px; text-align: center; font-size: 14px;' class="btn icon-heart" href="<?php echo build_link($res['id'])?>"></a>
    264. </p>
    265. </div>
    266. <?php }
    267. }?>
    268. </div>
    269.  
    270. </div>
    271. </div> 
    272. </div>
    273. </div>
    274. </div>
    есть у кого идеи по реализации предотвращение повторной отправки формы.

    Подсказка от модератора:
    Любой код или текст конфигурации пишите между тегом [code=php] и [/code].
    Используйте отступы в коде для форматирования текста.
    Это помогает быстрее понять вас, увеличивает шанс на получение ответа.
    Что выделять? Например: PHP, HTML, CSS, JavaScript, SQL, XML, .htaccess, ini, регулярные выражения, код шаблонизаторов, результаты array/object dump и т. д.
     
  2. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.870
    Симпатии:
    955
    Re: Проблема с отключением повторной отправки формы. Ищу реш

    почему тема находится в этом разделе а не в новичках?
    все что нужно - сделать редирект после обработки формы. header location гуглим.
     
  3. Dimadima41

    Dimadima41 Новичок

    С нами с:
    17 янв 2016
    Сообщения:
    5
    Симпатии:
    0
    Re: Проблема с отключением повторной отправки формы. Ищу реш

    Пытались настроить уже редирект, но или он не помагает, или я его не правильно настраиваю.
    Если ты уверен, что решение ошибки в редиректе, тогда попробую еще раз перенастроить.
    Других вариантов нету?
     
  4. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.870
    Симпатии:
    955
    Re: Проблема с отключением повторной отправки формы. Ищу реш

    вчитался в топик...
    нет, не редиректом это лечится. а отправкой поисковой формы методом гет а не пост.
     
  5. Dimadima41

    Dimadima41 Новичок

    С нами с:
    17 янв 2016
    Сообщения:
    5
    Симпатии:
    0
    Re: Проблема с отключением повторной отправки формы. Ищу реш

    Просто меняем метод на GET и все?*
    прост я только что перезаписал, но ошибка так и осталась.

    Добавлено спустя 7 минут 51 секунду:
    Re: Проблема с отключением повторной отправки формы. Ищу решение
    Все работает) использовал метод ГЕТ спасибо )
     
  6. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.870
    Симпатии:
    955
    Re: Проблема с отключением повторной отправки формы. Ищу реш

    пожалуйста.
    кстати обрати внимание на все поисковики - они все передают поисковый запрос через гет чтоб можно было банально ссылку скопипастить. но вот допустим форумные движки предпочитают смешивать и гет и пост - честно не очень понимаю какой в этом профит.