|
|
|
| Здравствуйте.
Небольшая проблемка:
в некоторой форме заполняю поля и отправляю ее, данные из формы записываются в БД MySQL и выводится сообщение что данные успешно сохранены, так вот если сделать refresh страницы, то данные запишутся в БД вторично, т.е. происходит дублирование...
Вопрос: Как можно этого избежать?
PS: В таблице записи различаются только по id и дате, остальные поля могут совпадать... | |
|
|
|
|
|
|
|
для: Alba
(17.01.2007 в 13:05)
| | обработчиком после добавления данных в бд очищать $_GET[''] или $_POST['']
<?php
if($_POST['need_value1']=="")exit();
...
if(Записано в БД){
$_POST['need_value1']="";
$_POST['need_value2']="";
}
?>
|
| |
|
|
|
|
|
|
|
для: Lelik
(17.01.2007 в 13:09)
| | Я так и делаю... только я сначала данные из post передаю в сессию и при существовании переменных basket и note в сессиии произвожу запись в БД. При успешной записиси я делаю вот так:
unset($_SESSION['basket']);
unset($_SESSION['note']);
|
но всеравно данные записываются вторично... | |
|
|
|
|
|
|
|
для: Alba
(17.01.2007 в 13:19)
| | Оно и будет записываться=)) ведь сессия та создаеться:))
При обновлении страницы повторяеться весь твой код сначала!!!
*беруться данные из пост создаеться сессия.... | |
|
|
|
|
|
|
|
для: Alba
(17.01.2007 в 13:05)
| | Эта проблема обсуждалась много раз=)))
Мне кажеться самый хороший способ, это после успешного добавления перенаправлять пользователя
header("location: index.php")
|
| |
|
|
|
|
|
|
|
для: Poison
(17.01.2007 в 13:11)
| | я думал об этом, но оставил эту мысль на крайний случай... :) | |
|
|
|
|
|
|
|
для: Alba
(17.01.2007 в 13:21)
| | Смело используйте - это стандартное решение проблемы. | |
|
|
|
|
|
|
|
для: cheops
(17.01.2007 в 15:23)
| | я обычно использовал после формы такое обновление <script>document.location.href=
поставил типо того
header('Location: profile.php');
и вот что мне выдало ... что делать?
Warning: Cannot modify header information - headers already sent by (output started at C:\!Server\www\profile.php:87) in C:\!Server\www\profile.php on line 145
|
| |
|
|
|
|
|
|
|
для: sidPR
(25.01.2007 в 14:25)
| | Куки, сессии, отправка заголовков должны происходить до отправки любой информации в окно браузера, т.е. до любого вывода echo, print или непосредственного вывода вне тэгов <?php и ?>. Это связано с тем, что HTTP-заголовки передаются перед всеми данными и когда происходит вывод в окно браузера PHP вынужден их пред этим отослать клиенту. Поэтому повторно, после вывода информации в браузер он не может работать с куками, сессиями и отправлять заголовки.
Если вывод текста до отправки заголовков необходим следует воспользоваться функциями управления вывода, позволяющих задерживать вывод информации в браузер.
http://www.softtime.ru/group/id_group=12 | |
|
|
|