Loading...
Привет народ. банальная проблема
текстовое поле вводишь текст отправляешь все норм
но если обновить страницу запрос заново добавляется
ALeeXSD , после добавления перезагружай страничку принудительно, броузер отправляет повторно данные, потому вставка происходит столько раз, сколько обновишь.
<?
if (isset($_POST['msg_submit'])){
$msg = $sql->escape($_POST['msg']);
$msg = substr($msg, 0, 200);
if (!isset($err)) {
$sql->query("INSERT INTO `livechat` (`msg`,`time`,`for_id`,`user_id`) VALUES ('{$msg}','". time() ."','{$for_id}','{$user['id']}');");
header('Location: livechat');
}
}
if (isset($err)) {
err($err);
}
?>
после header('Location: livechat'); выход через exit();
Сибирский (11.08.2017 в 16:54)
ALeeXSD , после добавления перезагружай страничку принудительно, броузер отправляет повторно данные, потому вставка происходит столько раз, сколько обновишь.

делаю с помощью header('Location: livechat'); все равно
ALeeXSD , тогда делай проверку последнего поста в чате и если текст и пользователь совпадают то пиши предупреждение вместо вставки, или воовсе ничего
ALeeXSD (11.08.2017 в 17:11)
Сибирский (11.08.2017 в 16:54)
ALeeXSD , после добавления перезагружай страничку принудительно, броузер отправляет повторно данные, потому вставка происходит столько раз, сколько обновишь.

делаю с помощью header('Location: livechat'); все равно



<?php
header('Location: ' . $_SERVER['REQUEST_URI']);
exit();


а вообще обработчики нужно хранить в другом файле и возвращать на страницу формы так


<?php
header('Location: ' . $_SERVER['HTTP_REFERER']);
exit();
PhpStorm , как вариант )
PhpStorm , а потом в один момент будет облом, потому что у пользователя отключен referer в браузере Гг
shadrvlad (11.08.2017 в 17:21)
PhpStorm , а потом в один момент будет облом, потому что у пользователя отключен referer в браузере Гг


а это уже паранойя пользователя, в коде ошибки нет .45.
________
посл. ред. 11.08.2017 в 17:24; всего 1 раз(а); by PhpStorm
Онлайн: 5
Время:
Gen. 0.1159
(c) Bym.Guru 2010-2026