В связи с переходом на новый движок... возможны сбои в работе! Простите!
Работы производятся прямо сейчас 19-03-2024! 🞨
Меню :
form (11)
php (329)



Blog (1392)
php (329)
js (244)
html (147)
css (131)
html tags (62)
js tag (56)
jquery (42)
text (37)
js method (36)
php array (33)
js date (33)
form html (30)
online (29)
Показать еще :
fonts (26)
ruweb.net (25)
foto (22)
php file (20)
atom (20)
forum (19)
hosting (18)
svg (18)
input (18)
php date (17)
board (16)
php time (16)
html book (16)
color (15)
info (15)
img (14)
js time (14)
js url (14)
js events (14)
htaccess (13)
select (13)
notepad (13)
osclass (13)
keyboard (12)
знак (12)
dw block (12)
php img (12)
php path (12)
table (12)
download (12)
icon (11)
form (11)
jsphp (11)
alphabet (10)
keyframes (10)
js delete (10)
yandex (10)
mouse (10)
chart (9)
hover (9)
dosite (8)
browser (8)
php post (7)
comment (7)
php url (7)
iframe (6)
php get (6)
mysql (6)
click (6)
list (6)
canvas (6)
adminka (6)
vs code (6)
js id (5)
mb (5)
heading (5)
value (5)
reg.ru (5)
ftp (5)
year (5)
js math (5)
tag a (5)
bbcode (4)
php var (4)
base64 (4)
xml (4)
scandir (4)
games (4)
flags (4)
symbols (4)
week (4)
day (4)
ssl (4)
нок (4)
submit (4)
task (4)
vk (4)
month (4)
pages (4)
console (4)
js form (4)
domen (3)
line (3)
https (3)
js post (3)
jquery post (3)
money (3)
numbers (3)
js img (3)
padding (3)
куб (3)
captcha (3)
ucoz (3)
js hash (3)
tag hr (2)
details (2)
typeof (2)
seo (2)
prompt (2)
sitemap (2)
рся (2)
youtube (2)
height (2)
arrows (2)
js vars (2)
counter (2)
google (2)
qr kod (2)
video (2)
speed (1)
smile (1)
нод (1)
rutube (1)
scroll (1)
windows (1)
archive (1)
jino (1)
cursor (1)

Запретить/отключить повторную отправку формы php

Довольно часто встречается проблема "повторной отправки формы в php". На самом деле - "отключить повторную отправку формы в php" очень просто! Рассмотрим это с примерами.

Подробно о повторной отправке формы php

  1. Пример повторной отправки формы
  2. Убрать повторную отправку формы php
  3. Форма для проверки повторной отправки формы
    Скачать - что в архиве?
  4. Отключаем повторную отправку формы php

  1. Пример повторной отправки формы

    Давайте разберемся - как происходит повторная отправка формы в php. Для этого нам понадобится такая форма. чтобы мы смогли увидеть в реальности - повторную отправку формы!

    Html + Php :

    <a name="result"></a>

    <?

      if (trim($_POST["example"])) {

        echo "POST запрос был отправлен" . strip_tags($_POST['example']);

      }

    ?>

    <form action="#result" method="post">

      <input type="text" name="example" value="привет мир">

      <input type="submit" value="Нажми на меня" name="submit">

    </form>

    Разместим выше приведенный код прямо здесь:

    Что нужно сделать!?

    Нажмите кнопку "Нажми на меня".

    После перезагрузки страницы нажмите "F5".

    И далее вы должны получить вот такой результат: Пример повторной отправки формы

    Если вы нажмете "продолжить", то первые данные отправятся второй раз на сервер.

    Если речь идет о комментариях, то тут появятся два абсолютно одинаковых комментария...

    Нам это не нужно!

    Как избавиться от "повторной отправки формы!?"


  2. Убрать повторную отправку формы php.

    С самого начала давайте обговорим "логику убирания повторной отправки формы", а далее приступим к теории!

    Логика отключения повторной отправки формы №1

    Обрабатываем post на отдельной странице.

    На данную страницу отправляем с помощью action.

    У нас есть такая вещь как сессия - это будет контейнером для переноса полученного результата.

    Приступим к...

    Теория : "убрать повторную отправку формы".

    Для того, чтобы отключить повторную отправку формы Вам понадобится:

    Тег form.

    В тег помещаем action с адресом(это живой пример) :

    https://dwweb.ru/__a-data/__all_for_scripts/__examples/html/redirect.php

    Чтобы не оправлять бессмысленные "post"-ы, возьмем два типа number - это будет импровизированный калькулятор... соберем форму:

    <form action="https://dwweb.ru/__a-data/__all_for_scripts/__examples/html/redirect.php" method="post" class="variant_action">
     <input type="number" name="variant_action_1" required>
     <input type="number" name="variant_action_2" required>
     <input type="submit" value="Отключи повторную отправку" name="variant_action">
    </form>

    Добавим стили, чтобы наши "input"-ы выглядели чуть поинтереснее.

    Вторая страница.

    Перейдем ко второй странице(которая в action). На ней расположим:

    Проверим стартовала ли сессия - располагаем в самом верху.

    Примем два post с использованием strip_tags.

    Сложим их(у нас два числа - вы же можете отправлять и принимать любые post-ы).

    Помещаем в сессию полученное значение.

    Сделаем переадресацию назад на эту страницу.

    Если требуется вывести результат в сессии выводим с помощью echo

    echo $_SESSION[имя_сессии];

    Далее убиваем сессию.

    И да... поставим здесь якорь, чтобы вернуться прямо сюда...

    Соберем весь код и помещаем одну часть здесь на странице... вторую часть кода на второй странице...

    Пример удаления удаления повторной отправки формы через action

    Для того, чтобы "удалить повторную отправку формы через action" - введите :

    В первое поле - первое число.

    Во второе поле - второе число.

    И нажмите кнопку - "Отключи повторную отправку"

    Пример формы для отключения повторной отправки формы

    Скачать - что в архиве?

    В архиве приведенный пример теории:

    Файл №1 с формой:

    Вторая страница - полностью соответствует описанию

    Бонус!

    В двух файлах использована теория и практика вывода автоматически определяемого пути.

    Скачать здесь.


  3. Отключаем повторную отправку формы php

    Чтобы отключить "повторную отправку формы php" нам придется немного изменить код, который мы написали ранее.

    Чем отличается выше приведенный код(в предыдущем пункте).

    Запускаем сессию:

    session_start();

    В условии

    if (trim($_POST["example1"]))

    Создаем сессию "$_SESSION[example1]" и предаем туда данные из "_POST".

    Далее header + refresh - перезагрузка.

    + exit, чтобы программа дальше не пошла.

    При перезагрузке проверяем существует ли сессия:

    if($_SESSION[example1])

    Если да, то передаем данные в переменную $echo1 + сессию уничтожаем

    $_SESSION[example1] ='';

    Соберем весь код отмены повторной отправки формы php

    Чтобы протестировать отключение запроса на повторную отправку формы, нажмите по ниже идущей кнопке...

    Смотри работу скрипта на примере.

    Обращаю ваше внимание!

    В связи с тем, что на данной странице - возникает ошибка "header" - что заголовки были уже отправлены!

    header("refresh: 0;");

    Поэтому... нам нужен отдельный пример, который вы уже видели выше - на примере.

    Скачать завтра!

Не стесняемся говорить спасибо!
Помочь проекту DwWeb.ru

Поделиться ссылкой! C друзьями или врагами!

Этим вы очень поможете проекту! Заранее огромное спасибо!

Ещё : dwweb.ru есть здесь:
ruweb
Все статьи авторские, при копироавании активная ссылка обязательна DwWeb.ru! © 2015 - 2024 Контакты. Реклама на сайте Лучший хостинг : RUWEB + помощь по RUWEB
Страница загружена за : 0.020937 секунд. Подробнее