Здравствуйте. Я сделал комментария. Всё ок, они выводятся. Ещё я решил сделать проверку такую, что если поля пустые, так просто пишет что допустим "ошибка, введите имя" и соответственно комментарий не отправляется. Ну я во общем написал эту проверку, не знаю правильно ли, потому что пока не работает... Но я не знаю как там написать, что если всё хорошо, так комментарий отправился бы, а если плохо так не отправится и ошибка.Ну вот что я сделал: Вот это вывод комментария( он работает). Тут если пользователь не залогинился, так ему просто выдает текст что, чтобы написать коммент, так надо залогинится и ещё выдает написанные комментарии. А если он залогинился так ему можно написать коммент и также видит другие комменты. PHP: <?php if (!empty($_SESSION['logged_user'])) { ?> <div id="kom"><a href="#form-container" id="trigger">Посмотреть комментарии</a></div> <div id="form-container"> <form name="comment" action="comment.php" method="post"> <br><br> <p> <label>Имя:</label> <input type="text" name="name" value="<?php echo @$data['name']; ?>" /> </p> <p> <label>Комментарий:</label> <br /> <textarea name="text_comment" cols="50" rows="10" value="<?php echo @$data['komentarij']; ?>" ></textarea> </p> <p> <input type="hidden" name="page_id" value="150" /> <input type="submit" value="Отправить" name="do_comment" /> </p><br><Br><Br><BR> <img id="swirl0" src="pav/swirl.gif" alt=""></img><h1 style="margin-left:245px; font-size:20px;">Комментарии:</h1> <img id="swirl3" src="pav/swirl.gif" alt=""></img> <?php $page_id = 150;// $mysqli = new mysqli("localhost", "root", "", "pr2");// $result_set = $mysqli->query("SELECT * FROM `comments` WHERE `page_id`='$page_id'"); while ($row = $result_set->fetch_assoc()) { echo "<br />"; echo $row["name"]; echo "<br />"; echo $row["text_comment"]; echo "<hr />"; } ?> </form> </div> <?php } else { echo '<div id="kom"><a href="#form-container" id="trigger">Посмотреть комментарии</a></div>'; echo "<br />"; echo '<div id="form-container">'; echo "<p style='color:red; font-size:20px; text-align:center;'>Для того что-бы написать коментарий, нужно авторизироваться</p>"; echo "<br />"; echo '<img id="swirl0" src="pav/swirl.gif" alt=""></img><h1 style="margin-left:245px; font-size:20px;">Комментарии:</h1> <img id="swirl3" src="pav/swirl.gif" alt=""></img>'; echo "<br />"; $page_id = 150;// $mysqli = new mysqli("localhost", "root", "", "pr2"); $result_set = $mysqli->query("SELECT * FROM `comments` WHERE `page_id`='$page_id'"); while ($row = $result_set->fetch_assoc()) { echo "<br />"; echo $row["name"]; echo "<br />"; echo $row["text_comment"]; echo "<hr />"; } echo'</div>'; } ?> Тут я делал проверку ошибок, но она кажется не получилась. PHP: <?php $data = $_POST; if( isset($data['do_comment'])) { $errors = array(); if( trim($data['name']) == '' ) { $errors[] = 'Введите имя!'; } if( trim($data['komentarij']) == '' ) { $errors[] = 'Введите коментарий!'; } if( empty($errors) ) { } else{ echo '<div style="color: red;">'.array_shift($errors).'</div><hr>'; } } ?> Там где PHP: if( empty($errors) ) { } Тут должен же быть вывод комментария, но я не знаю как тут его поместить.
@Alex00 не знаю точно зачем ты проверяешь переменная пуста или нет PHP: if(empty($errors)){ } попробуй сделать так! PHP: if(count($errors > 0)){ echo '<div style="color: red;">'.array_shift($errors).'</div><hr>'; } Вроде так должно быть. array_shift($errors) когда то смотрел и читал, что эта функция будет выводить только одну ошибку на экран, конечно если она есть. А то есть, если юзер не заполнил поле ему выводится твоя ошибка и предлагают его заполнит, когда он заполнил поле и есть еще не заполненные поля появляется следующая ошибка если он не заполнил второе поле и так далее пока не заполнит все поля.
@Alex00 Сейчас ошибка выводится что поле не заполнено? По внятней вопрос задай смысле чтоб коментарий не вывелся, когда поле не заполнено или что? Конкретней вопрос задай.
action правильно указан? Я так понимаю запись комментариев в базу происходит в том файл? Тэг img одиночный, его не надо закрывать.