Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / PHP, Perl, Python Новый топик    Ответить
 Запрет повторной отправки формы php  [new]
angrybot
Member

Откуда:
Сообщений: 30
Все привет народ. Классическая проблемка повторной отправки формы. JS знаю плохо, приходиться на php

<div id="modal" class="modal">
<div>
<div class="text" align="center">
<div id="blok_tel">
<form action="" method="post" class="form1">
<span>Свяжитесь с менеджером</span>
<input class="textforma" type="text" name="tel" class="inputbox" placeholder="Ваш номер телефона"><br>
<input class="inputforma" type="submit" class="button" name="submit_tel">
</form>
<?if(isset($_POST["submit_tel"])){
$email = 'lider.sale@bk.ru';
mail($email, "Заказ обратного звонка на сайте ЛидерГК", "\n
Посетитель заказал обратный звонок! \n
Телефон : ".$_POST['tel']."");
echo "Спасибо Ваша заявка принята";
} ?>

Принимаю POST и отправляю его сразу на мыло если удачно то вывожу echo
но при обновлении страницы как всегда повторная ошибка) как притормозить. думал через сессию но вся эта форма висит на wp боюсь с корзиной проблемы будут
подскажите пожалуйста. Спасибо
11 авг 17, 10:56    [20715913]     Ответить | Цитировать Сообщить модератору
 Re: Запрет повторной отправки формы php  [new]
Hett
Member

Откуда: Бийск, Новосибирск
Сообщений: 12597
Сделать редирект после обработки POST запроса.
11 авг 17, 11:01    [20715937]     Ответить | Цитировать Сообщить модератору
 Re: Запрет повторной отправки формы php  [new]
angrybot
Member

Откуда:
Сообщений: 30
Hett
Сделать редирект после обработки POST запроса.

я думал про header location но надо бы остаться на карточке товара
11 авг 17, 11:06    [20715963]     Ответить | Цитировать Сообщить модератору
 Re: Запрет повторной отправки формы php  [new]
Hett
Member

Откуда: Бийск, Новосибирск
Сообщений: 12597
Сделайте редирект на эту же страницу.
А сообщение выведите через сессию, например.
11 авг 17, 11:10    [20715992]     Ответить | Цитировать Сообщить модератору
 Re: Запрет повторной отправки формы php  [new]
angrybot
Member

Откуда:
Сообщений: 30
Hett,
подскажите как сделать в коде
11 авг 17, 11:16    [20716039]     Ответить | Цитировать Сообщить модератору
 Re: Запрет повторной отправки формы php  [new]
yarnik
Member

Откуда:
Сообщений: 242
я у себя написал яваскрипт, котрый делает кнопку не активной после нажатия.
16 авг 17, 12:53    [20727859]     Ответить | Цитировать Сообщить модератору
 Re: Запрет повторной отправки формы php  [new]
angrybot
Member

Откуда:
Сообщений: 30
yarnik
я у себя написал яваскрипт, котрый делает кнопку не активной после нажатия.

можно кодик глянуть. я в js не особо силен
16 авг 17, 12:57    [20727882]     Ответить | Цитировать Сообщить модератору
 Re: Запрет повторной отправки формы php  [new]
yarnik
Member

Откуда:
Сообщений: 242
jquery
	$('form').submit(function(){
		$('#submit').attr('disabled', true);
	});
16 авг 17, 13:22    [20727989]     Ответить | Цитировать Сообщить модератору
 Re: Запрет повторной отправки формы php  [new]
DarkMaster
Member

Откуда: Donetsk,Ukraine
Сообщений: 5571
angrybot,

Или на чистом JS:

    function setcontrolenabled(AName,AEnable)
    {
        el = document.getElementById(AName);
        if (el != null) {
            if (AEnable == true) {
                el.removeAttribute("disabled");
            }
            else {
                el.setAttribute("disabled", "disabled");
            }
        }

    }
17 авг 17, 10:36    [20730286]     Ответить | Цитировать Сообщить модератору
 Re: Запрет повторной отправки формы php  [new]
Hett
Member

Откуда: Бийск, Новосибирск
Сообщений: 12597
Разве это поможет от F5?
17 авг 17, 10:38    [20730292]     Ответить | Цитировать Сообщить модератору
 Re: Запрет повторной отправки формы php  [new]
angrybot
Member

Откуда:
Сообщений: 30
Hett
Разве это поможет от F5?


в том то и вся проблема в этом f5 )
17 авг 17, 10:41    [20730303]     Ответить | Цитировать Сообщить модератору
 Re: Запрет повторной отправки формы php  [new]
DarkMaster
Member

Откуда: Donetsk,Ukraine
Сообщений: 5571
Hett,

На сессию или в кук сложить доступность кнопки?
17 авг 17, 10:45    [20730329]     Ответить | Цитировать Сообщить модератору
 Re: Запрет повторной отправки формы php  [new]
DarkMaster
Member

Откуда: Donetsk,Ukraine
Сообщений: 5571
Дополню - и на window.onload() навесить вызов установки доступности. Кстати в форму можно еще какой-то скрытый уникательный идентификатор засунуть.
17 авг 17, 10:48    [20730349]     Ответить | Цитировать Сообщить модератору
 Re: Запрет повторной отправки формы php  [new]
DarkMaster
Member

Откуда: Donetsk,Ukraine
Сообщений: 5571
angrybot,

Хотя мне кажется, что тут усложняем без надобности. В скрипт можно передать переменную, которая будет говорить, нужно ли слать форму или нет.

Схематично:
  $dosend=$_GET['dosend'];

  if ($dosend == 'Y')
   {
       
      // шлем форму
      $dosend="N";
   }

  // перенаправляем на себя же
  header(" ..../dosendform.php?dosend=$dosend"); 
17 авг 17, 10:55    [20730399]     Ответить | Цитировать Сообщить модератору
 Re: Запрет повторной отправки формы php  [new]
Hett
Member

Откуда: Бийск, Новосибирск
Сообщений: 12597
Млять, после обработки формы сделайте редирект на эту же страницу и не парьте мозг, этот механизм используется повсеместно.
17 авг 17, 11:31    [20730526]     Ответить | Цитировать Сообщить модератору
 Re: Запрет повторной отправки формы php  [new]
yarnik
Member

Откуда:
Сообщений: 242
Нет, от ф5 мой код не спасает.
У меня часто было что на форму 2 раза чего то жали, вот от этого спасает =)
Если от ф5 надо защита, то как уже озвучили:
1. Hett о редиректе
2. DarkMaster о куках или о переменных
17 авг 17, 11:38    [20730549]     Ответить | Цитировать Сообщить модератору
 Re: Запрет повторной отправки формы php  [new]
ShSerge
Member

Откуда: ʚонɔ dиw
Сообщений: 24662
[quot Hett]Млять, после обработки формы сделайте редирект на эту же страницу и не парьте мозг, этот механизм используется повсеместно.[/quot
Потверждаю. Редирект. Детская ошибка, так сказать.
17 авг 17, 20:26    [20732535]     Ответить | Цитировать Сообщить модератору
Все форумы / PHP, Perl, Python Ответить