Обучение/Помощь новичкам | запрос в бд
Привет народ. банальная проблема
текстовое поле вводишь текст отправляешь все норм
но если обновить страницу запрос заново добавляется
текстовое поле вводишь текст отправляешь все норм
но если обновить страницу запрос заново добавляется
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);
}
?>
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 , после добавления перезагружай страничку принудительно, броузер отправляет повторно данные, потому вставка происходит столько раз, сколько обновишь.
ALeeXSD , после добавления перезагружай страничку принудительно, броузер отправляет повторно данные, потому вставка происходит столько раз, сколько обновишь.
делаю с помощью header('Location: livechat'); все равно
ALeeXSD , тогда делай проверку последнего поста в чате и если текст и пользователь совпадают то пиши предупреждение вместо вставки, или воовсе ничего
DELETED
11 августа 2017, в 17:17
Delete
ALeeXSD (11.08.2017 в 17:11)
Сибирский (11.08.2017 в 16:54)
ALeeXSD , после добавления перезагружай страничку принудительно, броузер отправляет повторно данные, потому вставка происходит столько раз, сколько обновишь.
делаю с помощью header('Location: livechat'); все равно
Сибирский (11.08.2017 в 16:54)
ALeeXSD , после добавления перезагружай страничку принудительно, броузер отправляет повторно данные, потому вставка происходит столько раз, сколько обновишь.
делаю с помощью header('Location: livechat'); все равно
<?php
header('Location: ' . $_SERVER['REQUEST_URI']);
exit();
а вообще обработчики нужно хранить в другом файле и возвращать на страницу формы так
<?php
header('Location: ' . $_SERVER['HTTP_REFERER']);
exit();
PhpStorm , как вариант )
DELETED
11 августа 2017, в 17:21
Delete
DELETED
11 августа 2017, в 17:23
Delete
shadrvlad (11.08.2017 в 17:21)
PhpStorm , а потом в один момент будет облом, потому что у пользователя отключен referer в браузере
PhpStorm , а потом в один момент будет облом, потому что у пользователя отключен referer в браузере
а это уже паранойя пользователя, в коде ошибки нет .45.
________
посл. ред. 11.08.2017 в 17:24; всего 1 раз(а); by PhpStorm