Добавление статьи в PHP

Есть код PHP который должен по идее добавлять статью на сайт. Но почему-то он не работает) Помогите найти ошибку,ну или предложите более лучший способ добавление статьи) это бд

Вот код:

<div id="comment-add-form" class="block">

<h3>Добавить статью</h3>

<div class="block__content">

 <form class="form" method="POST" action="/my_cob.php?id=<?php echo $art['id'];?>

    <?php
      if( isset($_POST['do_post']) )
      {
        $errors = array();

        if( $_POST['title'] == '')
        {
          $errors[] = 'Введите название статьи!';
        }
        if( $_POST['image'] == '')
        {
          $errors[] = 'добавьте изображение!';
        }
        if( $_POST['categorie_id'] == '')
        {
          $errors[] = 'Добавьте категорию!';
        }
        if( $_POST['text'] == '')
        {
          $errors[] = 'Введите текст!';
        }

        if( empty($errors) )
        {

          mysqli_query($connection, "INSERT INTO `articles` (`id`, `title`, `text`, `categorie_id`, `pubdate`, `views`, `image`) VALUES ('".$_POST['title']."' , '".$_POST['image']."' , '".$_POST['categorie_id']."' , '".$_POST['text']."' , NOW(), '".$art['id']."')");

          echo '<span style="color: green; font-weight: bold; margin-bottom: 10px;display: block;">Коммент добавлен!</span>';

        }else
        {
          echo '<span style="color: red; font-weight: bold; margin-bottom: 10px;display: block;">' . $errors['0'] . '</span>';
        }
      }
     ?>
    <div class="form__group">
      <div class="row">
        <div class="col-md-4">
          <input type="text" name="name" class="form__control" placeholder="Название статьи" value="<?php echo $_POST['title']; ?>">
        </div>
        <div class="col-md-4">
          <input type="file" name="image" class="form__control" placeholder="Изображение" value="<?php echo $_POST['image']; ?>">
        </div>
      </div>
    </div>
    <div class="form__group">
      <textarea class="form__control" name="text" placeholder="Текст статьи ..."><?php echo $_POST['text']; ?></textarea>
    </div>
    <div class="col-md-4">
      <input type="input" name="categorie_id" class="form__control" placeholder="Категория статьи" value="<?php echo $_POST['categorie_id']; ?>">
    </div>
    <div class="form__group">
      <input type="submit" name="do_post" value="Добавить статью" class="form__control">

    </div>
  </form>
</div>


Ответы (1 шт):

Автор решения: delikates

Вы объявили $errors = array(); после всех проверок, в случае, если у Вас нет ошибок Вы проверяете if( empty($errors) )

Смотрим описание функции empty

Проверяет, считается ли переменная пустой. Переменная считается пустой, если она не существует или её значение равно FALSE. https://www.php.net/manual/ru/function.empty.php

Получается, что проверка if( empty($errors) ) у Вас всегда возвращает false и кусок кода отвечающий за вставку данных в БД никогда не сработает.

→ Ссылка