Задать вопрос
@Iossarian

Почему не срабатывает if-условие?

Настраиваю добавление записи с картинкой и без нее, но php не воспринимает первый if (без картинки) и сразу переходит на elseif. Где моя ошибка?
if (isset($data['add']) && empty($_FILES['image'])) {
    print_r($_FILES);
    if (empty($data['title'])) {
        $errors['title'] = 'Придумайте заголовок статьи';
    } elseif (empty($data['description'])) {
        $errors['description'] = 'Придумайте кратное описание для статьи';
    } elseif (empty($data['text'])) {
        $errors['text'] = 'Напишите текст статьи';
    }
    if (empty($errors)) {
        $sql = "INSERT INTO posts (title, description, text, date, author_id) VALUES (:title, :description, :text, NOW(), :author_id)";
        $result = $db->prepare($sql, $values);
        if ($result) {
            header("Location: ../index.php");
        }
    }
} elseif (isset($data['add']) && !empty($_FILES)) {
    $allowedTypes = ['image/jpg', 'image/png', 'image/jpeg'];
    $type = explode('/', $_FILES['image']['type']);
    $fileName = 'img\\' . uniqid() . '.' . $type[1];
    $path = 'D:\OP\OSPanel\domains\bot\\';
    if (!in_array($_FILES['image']['type'], $allowedTypes)) {
       $errors['image'] = 'Недопустимый тип файла';
    } else {
        if (empty($data['title'])) {
            $errors['title'] = 'Придумайте заголовок статьи';
        } elseif (empty($data['description'])) {
            $errors['description'] = 'Придумайте кратное описание для статьи';
        } elseif (empty($data['text'])) {
            $errors['text'] = 'Напишите текст статьи';
        }
        if (empty($errors)) {
            $values[4] = $fileName;
            $sql = "INSERT INTO posts (title, description, text, date, author_id, image) VALUES (:title, :description, :text, NOW(), :author_id , :image)";
            $result = $db->prepare($sql, $values);
            if ($result) {
                move_uploaded_file($_FILES['image']['tmp_name'], $path . $fileName);
                header("Location: ../index.php");
            }
        }
    }
}
  • Вопрос задан
  • 139 просмотров
Подписаться 2 Простой 8 комментариев
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
AleksandrB
@AleksandrB
Совсем недавно вывел "Hello world"
Вместо "И" попробуй "или" поставить
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
IT ATLAS Москва
от 250 000 до 500 000 ₽