При отправке пустой формы срабатывает переадрессация, хотя должна выводиться подсказка о не заполненном поле. .php Код (Text): if(isset($_POST['text'])) { $errors = array(); if(empty($_POST['text'])) { $errors['text'] = 'Вы не заполнили поле!'; } if (!count($errors)) { mysqli_query($link, "INSERT INTO `commetns` SET `name` = '".mysqli_real_escape_string($link, $_POST['name'])."', `text` = '".mysqli_real_escape_string($link, $_POST['text'])."', `date` = ".$date." ") or exit(mysqli_error($link)); } $_SESSION['comment'] = 'sent'; header("Location: index.php?modules=comments&page=comments"); exit(); } .tpl Код (Text): <?php if(!isset ($_SESSION['comment'])) { ?> <p>Отзывы<p> <div> <form action="" method="post"> <table> <tr> <td>Назови себя!</td> <td><input type="text" name="name" value="<?php echo @htmlspecialchars($_POST['name']);?>"></td> <td></td> </tr> <tr> <td>Сюда пиши отзыв!*</td> <td><input class="text" type="text" name="text" value="<?php echo @htmlspecialchars($_POST['text']);?>"></td> <td><?php echo $errors['text']; ?></td> </tr> <tr> <td></td> <td>* - обязательные для заполнения</td> <td></td> </tr> <tr> <td><input type="submit" name="send" value="Отправить отзыв"></td> <td></td> <td></td> </tr> </table> </form> <?php } else { unset($_SESSION['comment']); ?> <p>Отзыв отправлен!</p> <?php } ?> </div>
Отладку проводил, есть по ней вопросы? http://phpfaq.ru/debug https://netbeans.org/kb/docs/php/debugging_ru.html
Ничего, должна появиться подсказка. Код (Text): if(empty($_POST['text'])) { $errors['text'] = 'Вы не заполнили поле!'; }
У Вас изначально условие if(isset($_POST['text'])) при отправке незаполненой формы этой переменной будет присвоено значение пустой строки. Так что это условие будет всегда TRUE Добавлено спустя 1 минуту 7 секунд: Именно в этом условии у Вас переадресация прописана
Код (Text): if(!isset($_POST['text'])) { $errors = array(); if(empty($_POST['text'])) { $errors['text'] = 'Вы не заполнили поле!'; } if (!count($errors)) { mysqli_query($link, "INSERT INTO `commetns` SET `name` = '".mysqli_real_escape_string($link, $_POST['name'])."', `text` = '".mysqli_real_escape_string($link, $_POST['text'])."', `date` = ".$date." ") or exit(mysqli_error($link)); $_SESSION['comment'] = 'sent'; header("Location: index.php?modules=comments&page=comments"); exit(); } }