короче есть $_POST и $_FILES данные. я их обработал и удаляю через unset($_FILES,$_POST)? но они не удаляються!чё за хня?
19 Авг 2011, 20:06Default_mo, это чёт типа чата тип пишет скрипт проверяет сначала есть ли данные пост и если есть выполняет запрос в бд.
а форма ввода есть всегда.
так вот массив их уничтожает но когда обновляю страницу они появляються и сообщения дублируются.что делать??
ну так браузеры заново отправляют данные если нажимаешь на "обновить"
кури в сторону сессий.
как уже сказал Default_Mo, когда обновляешь страницы пост запросы отправляются снова.
вариант избавиться от повторного ввода в БД одной и той же информации, это проверять перед вводом уже имеющуюся информацию в БД
через if else
mix, бредово. У него же чат, следовательно повторения сообщений неизбежны. Допустим я написал слово "Да", значит никто другой это не сможет сделать определенное время?)
Я например вычисляю время сообщений и делаю ограничение в 30 секунд.
Dizzy, ну а я же не знаю что у него за скрипт
З.Ы. Я это как вариант предложил
добавлено спустя 1 минуту:
Mr.Berk пишет:
"Default_mo, это чёт типа чата..."
сорри, не заметил
Записывай в сессию последнее сообщение и ид комнаты..
if(empty($_SESSION['last']) || $_SESSION['last']['msg']!=$msg || $_SESSION['last']['room']!=$room) {
//Записываеш сообщение в базу/файл и заносиш его в сессию
$_SESSION['last']=array('msg'=>$msg, 'room'=>$room);
}
$room-ид комнаты...
Mr.Berk, создавай каждый раз уникальное поле $_POST и уникальный идентификатор пиши в сесию, теперь каждый раз когда добавляешь сообщение сверяешь идентификатор с сесси с идентификатором поста
<?php
if(isset($_SESSION['uni']) && $_POST['uni'] == $_SESSION['uni'])
{
//вставляешь пост
}
$uni = $_SESSION['uni'] = mt_rand(0,99999);
echo '
<input type="hidden" name="uni" value="'.$uni.'" />
<input type="text" name="msg" />';
?>
по идее должно работать