Добавление статьи в 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 и кусок кода отвечающий за вставку данных в БД никогда не сработает.