Есть такой код. Тут когда нажимаешь на кнопку, так с формы вся инфо в дб идет. Ну и когда записалась в дб, страница должна перезагрузить ну или тот реридект и должно посля этого быть надпись echo "Записалось"; Но у меня нет этой записи, потому что, почему-то он перезагружает сайт с этим echo и крч ничего не выходит, как можно это сделать? PHP: <?php $login = $_SESSION['login']; $subject = $_POST['subject']; $text = $_POST['message']; if (isset($_POST['submit'])){ mysql_query("INSERT INTO `vopros` (`author`, `subject`, `text`) VALUES ('$login', '$subject', '$text')"); header("Location: ".$_SERVER["HTTP_REFERER"]); echo "Записалось"; } ?>
Например, после вставки записи получить её id, записать его в сессию. И после этого: header(); exit; И добавить, например, альтернативную ветку: elseif("есть записанный id в сессии") { /* удалить запись в сессии об id и вывести сообщение об успехе...*/}
Чаще встречается такой подход, header перенаправляет на отдельно взятую страницу, где выводят header, footer и тело страницы всего лишь с сообщением в $_SESSION['messaga'] - что мол вот вы там наделали, у нас тут заработало обработалось и вот собственно и все, перейдите по ссылке на главную или вас выкинет к чертям собачьим через 10 секунд. а код там простой, на javascripte куча готовых решений в тырнете есть, там 2 строчки.
наверное для экономии работы сервера, нужно же сообщить что операция прошла успешно перед редиректом, хотя можно сделать задержку хедера в несколько секунд чтобы увидеть то сообщение
Об этом сообщают после редиректа, не перед, мы редиректим на страницу с этим сообщением. А чтоб с неё перейти на другую, можно воспользоваться <meta http-equiv="refresh" content="seconds;URL-to-redirect">