Повторная запись данных в базу. Как исправить?

  • Автор темы Автор темы letsgo
  • Дата начала Дата начала

letsgo

Новичок
Повторная запись данных в базу. Как исправить?

Добрый день.
Методом GET посылаю запрос скрипту, после чего данные заносятся в БД.
Некоторые пользователи обновляют страницу и тогда данные заносятся в БД еще раз, а некоторые зачем- то нажимают еще раз, и так до бесконечности :)


Подскажите, пожалуйста, что нужно указать в скрипте после вставки всех данных, чтобы при обновлении страницы эти данные больше не вставлялись.

Спасибо.

PS
Проверка данных на уникальность, к сожалению, не подойдет.
 
и после занесения в базу делай редирект, чтоб сбросить POST-данные.
 
Автор оригинала: Beavis
и после занесения в базу делай редирект, чтоб сбросить POST-данные.
дело в том, что после занесения в базу, пользователю дается кое-какая информация, которая по идеи должна ему быть полезна и он как бы должен с ней ознакомиться :)

А что без изменения метода отправки данных данную проблему не решить?
 
ну так информация же есть в базе. ознакамливай

вопрос про изменение метода бессмысленный. "а что, без замены вилки на ложку суп поесть нельзя будет?" Можно. через клизму залить.
изменения в базе делаются только постом. это аксиома. азбука веб-программирования.
 
Автор оригинала: Beavis
и после занесения в базу делай редирект, чтоб сбросить POST-данные.
В общем, с заголовками трабл.
"Cannot modify header information" говорит и все тут
 
ну правильно. он же не может утащить за хвост обратно тот заголовок, который уже отправил.
а отправляет он всегда, когда выводит что-то в браузер.
вывод: пере направление делается до вывода.
и только не надо говорить, что у тебя сайт по строен по схеме "мечта всех ламеров - инклюдим контент в шаблон"
 
*****, так...
с одним разобрался, при обновлении страницы в базу больше ничего не записывается.

Теперь объясните мне, пожалуйста, как контент-то вывести :(
нужен mysql_insert_id() + некоторые данные, которые были в форме...
 
с некоторыми данными, которые были в форме - сложнее.
как я понимаю, эта форма у тебя не для людей с улицы и сессия уже поднята? Вот и пиши в неё
 
ну, а элементарное echo "Готово"; можно вывести без записи в сессию
 
ну. это да.
но для готово тогда определенный адрес должен быть.
если ты опишешь свой скрипт более конкретно, то тебе скажут, как это делается обычно
 
да как бы ничего сложного в скрипте то и нет.
Простая html-форма, посылаем запрос методом POST в эту же страницу.
Собственно на этой странице:
PHP:
if (isset($_POST['Submit']))
--запрос к БД
header('Location: ------);
}
 
в некоторых фреймворках для этого используются так называемые flash-messages, т.е. сообщения, записываемые в сессию, и удаляемые оттуда после извлечения.
 
letsgo
если посылать на ту же, то как определить, писать "готово", или нет?
 
Автор оригинала: *****
letsgo
если посылать на ту же, то как определить, писать "готово", или нет?
хм...
PHP:
$res = mysql_query("INSERT INTO ......");
if (isset($res)) { echo "готово"; 
}
Примерно вот так
 
Автор оригинала: letsgo
хм...
PHP:
$res = mysql_query("INSERT INTO ......");
if (isset($res)) { echo "готово"; 
}
Примерно вот так
в таком виде isset($res) всегда будет выдавать true, ибо переменная инициализирована
 
- сколько будет дважды два?
- пять!
- ????
- ой, нет! ВОСЕМЬ! Ж:-О
 
Сверху