PHP. Повторная отправка формы.

Я думаю все, кто изучал PHP сталкивались с такой проблемой. После отправки данных скрипту из формы при обновлении страницы (нажатии F5) данные отправляются повторно. Гугление вопроса выдает кучу советов типа "Добавь header("Location: $PHP_SELF");" в различных его вариациях. Увы, сколько не добавлял, любой браузер начинает орать что-то в духе "Отправить данные из формы повторно?" В итоге в базу отправляется огромное количество дублирующихся записей. И это грустно. Было бы, если бы не решалось достаточно элементарно

Сначала я решил просто посмотреть, что же хранится в $PHP_SELF при отработке моего скрипта:

echo var_dump($PHP_SELF);

К своему удивлению на выходе я получил NULL. Почему - отдельный вопрос, в котором я пока что не разобрался. Но очевидно что никакого редиректа я не получу.

Решение нашлось совершенно случайно. В прочем как и большинство моих решений в программировании 🙂

header("Location: index.php");

Где "index.php" - имя моего скрипта. Тупо? Согласен. Но блин работает!

 

Добавить комментарий