За последние 24 часа нас посетили 22714 программистов и 1278 роботов. Сейчас ищут 662 программиста ...

Не работает проверка ошибок...

Тема в разделе "PHP для новичков", создана пользователем Alex00, 22 июн 2017.

  1. Alex00

    Alex00 Новичок

    С нами с:
    17 июн 2017
    Сообщения:
    25
    Симпатии:
    2
    Здравствуйте. Я сделал комментария. Всё ок, они выводятся. Ещё я решил сделать проверку такую, что если поля пустые, так просто пишет что допустим "ошибка, введите имя" и соответственно комментарий не отправляется. Ну я во общем написал эту проверку, не знаю правильно ли, потому что пока не работает... Но я не знаю как там написать, что если всё хорошо, так комментарий отправился бы, а если плохо так не отправится и ошибка.Ну вот что я сделал:

    Вот это вывод комментария( он работает). Тут если пользователь не залогинился, так ему просто выдает текст что, чтобы написать коммент, так надо залогинится и ещё выдает написанные комментарии. А если он залогинился так ему можно написать коммент и также видит другие комменты.
    PHP:
    1. <?php
    2. if (!empty($_SESSION['logged_user'])) { ?>
    3. <div id="kom"><a href="#form-container" id="trigger">Посмотреть комментарии</a></div>
    4. <div id="form-container">
    5.          <form name="comment" action="comment.php" method="post">
    6.          <br><br>
    7.   <p>
    8.     <label>Имя:</label>
    9.     <input type="text" name="name" value="<?php echo @$data['name']; ?>" />
    10.   </p>
    11. <p>
    12.     <label>Комментарий:</label>
    13.     <br />
    14.     <textarea name="text_comment" cols="50" rows="10" value="<?php echo @$data['komentarij']; ?>" ></textarea>
    15.   </p>
    16.   <p>
    17.     <input type="hidden" name="page_id" value="150" />
    18.     <input type="submit" value="Отправить" name="do_comment" />
    19.   </p><br><Br><Br><BR>
    20.   <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>
    21. <?php
    22.   $page_id = 150;//
    23.   $mysqli = new mysqli("localhost", "root", "", "pr2");//
    24.   $result_set = $mysqli->query("SELECT * FROM `comments` WHERE `page_id`='$page_id'");
    25.   while ($row = $result_set->fetch_assoc()) {
    26.      echo "<br />";
    27.     echo $row["name"];
    28.     echo "<br />";
    29.     echo $row["text_comment"];
    30.     echo "<hr />";
    31.   }
    32. ?>
    33. </form>
    34. </div>
    35. <?php
    36. } else {
    37.     echo '<div id="kom"><a href="#form-container" id="trigger">Посмотреть комментарии</a></div>';  echo "<br />";
    38.     echo '<div id="form-container">';
    39.     echo "<p style='color:red; font-size:20px; text-align:center;'>Для того что-бы написать коментарий, нужно авторизироваться</p>"; echo "<br />";
    40.     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 />";
    41.   $page_id = 150;//
    42.   $mysqli = new mysqli("localhost", "root", "", "pr2");
    43.   $result_set = $mysqli->query("SELECT * FROM `comments` WHERE `page_id`='$page_id'");
    44.   while ($row = $result_set->fetch_assoc()) {
    45.      echo "<br />";
    46.     echo $row["name"];
    47.     echo "<br />";
    48.     echo $row["text_comment"];
    49.     echo "<hr />";
    50.   }
    51. echo'</div>';
    52. }
    53. ?>
    Тут я делал проверку ошибок, но она кажется не получилась.
    PHP:
    1. <?php
    2. $data = $_POST;
    3. if( isset($data['do_comment']))
    4. {
    5.    
    6.     $errors = array();
    7.     if( trim($data['name']) == '' )
    8.     {
    9.         $errors[] = 'Введите имя!';
    10.     }
    11.    
    12.     if( trim($data['komentarij']) == '' )
    13.     {
    14.         $errors[] = 'Введите коментарий!';
    15.     }
    16.      if( empty($errors) )
    17.     {
    18.    
    19.    
    20. }
    21. else{
    22.     echo '<div style="color: red;">'.array_shift($errors).'</div><hr>';
    23.    
    24.     }
    25. }
    26.  
    27. ?>
    Там где
    PHP:
    1.      if( empty($errors) )
    2.     {
    3.    
    4.    
    5. }
    Тут должен же быть вывод комментария, но я не знаю как тут его поместить.
     
  2. _ne_scaju_

    _ne_scaju_ Старожил

    С нами с:
    25 ноя 2016
    Сообщения:
    2.149
    Симпатии:
    118
    @Alex00
    не знаю точно зачем ты проверяешь переменная пуста или нет
    PHP:
    1. if(empty($errors)){
    2. }
    попробуй сделать так!
    PHP:
    1. if(count($errors > 0)){
    2.   echo '<div style="color: red;">'.array_shift($errors).'</div><hr>';
    3. }
    Вроде так должно быть.
    array_shift($errors) когда то смотрел и читал, что эта функция будет выводить только одну ошибку на экран, конечно если она есть.
    А то есть, если юзер не заполнил поле ему выводится твоя ошибка и предлагают его заполнит, когда он заполнил поле и есть еще не заполненные поля появляется следующая ошибка если он не заполнил второе поле и так далее пока не заполнит все поля.
     
    #2 _ne_scaju_, 22 июн 2017
    Последнее редактирование: 22 июн 2017
  3. Alex00

    Alex00 Новичок

    С нами с:
    17 июн 2017
    Сообщения:
    25
    Симпатии:
    2
    Хорошо. А как тогда сделать чтоб не вывелся коментарий. А то я не знаю.
     
  4. _ne_scaju_

    _ne_scaju_ Старожил

    С нами с:
    25 ноя 2016
    Сообщения:
    2.149
    Симпатии:
    118
    @Alex00
    Сейчас ошибка выводится что поле не заполнено?
    По внятней вопрос задай смысле чтоб коментарий не вывелся, когда поле не заполнено или что?
    Конкретней вопрос задай.
     
  5. umbabaraumba

    umbabaraumba Новичок

    С нами с:
    18 июн 2017
    Сообщения:
    100
    Симпатии:
    17
    action правильно указан?
    Я так понимаю запись комментариев в базу происходит в том файл?

    Тэг img одиночный, его не надо закрывать.
     
  6. Alex00

    Alex00 Новичок

    С нами с:
    17 июн 2017
    Сообщения:
    25
    Симпатии:
    2
    Всё, я исправил, теперь ок.
     
    denis01 нравится это.
  7. _ne_scaju_

    _ne_scaju_ Старожил

    С нами с:
    25 ноя 2016
    Сообщения:
    2.149
    Симпатии:
    118