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

Как добавить пост с файлом на сайт?

Здравствуйте!

Я начинающий php-разработчик, в данный момент вызывает трудности задача с добавлением поста с файлом на сайт. Добавление просто текстового поста или добавления картинки отдельно трудностей не вызывает, но когда я попытался соединить эти два кода, он не заработал.

Вот код с добавлением отдельного файла:
$file_name = $_FILES['pic']['name'];
  $file_path = 'img/'.$file_name;
  if (move_uploaded_file($_FILES['pic']['tmp_name'], $file_path)) {
    $query = mysqli_query($link, "INSERT INTO `pic` (`pic`) VALUES ('".$file_path."')");
    echo "Успешно";
  } else {
    echo "Не вышло(";
  }


Код с добавлением поста с файлом и текстом:
$title = $_POST['title'];
  $tags = $_POST['tags'];
  $text = $_POST['text'];

  $file_name = $_FILES['pic']['name'];
  $file_path = 'img/'.$file_name;

  if (move_uploaded_file($_FILES['pic']['tmp_name'], $file_path)) {
    if (isset($_POST['do_create'])) {
      if ($title == '') {
        echo "Введите название поста!";
      } if ($tags == '') {
        echo "Введите теги поста!";
      } if ($text == '') {
        echo "Введите текст поста!";
      } else {
        $title_query = mysqli_query($link, "SELECT `title` FROM `posts` WHERE `title` LIKE '".$title."'");
        $text_query = mysqli_query($link, "SELECT `text` FROM `posts` WHERE `text` LIKE '".$text."'");

        if (mysqli_num_rows($title_query) > 0) {
          echo "Такой пост уже существует!";
        } if (mysqli_num_rows($text_query) > 0) {
          echo "Такой пост уже существует!";
        } else {
          $query = mysqli_query($link, "INSERT INTO `posts` (`title`, `tags`, `pic`, `text`) VALUES ('".$tite."', '".$tags."', '".$file_path."', '".$text."')");
          echo "Пост успешно добавлен!";
        }
      }
    }
  }


UPD: Добавил вывод ошибок в начале, как мне подсказали: выводит undefined index 'title', 'tags', 'text' и 'pic'. Это пока я не ввёл данные в поля, это я понял. При вводе данных и отправке их по клику кнопки, он распознает текстовые поля, но pic так и не видит. То есть он не распознаёт прикреплённый файл... Не могу понять, в чём тут ошибка, ведь аналогичный скрипт я использовал в другом проекте (чуть проще: без tags и text), там всё работало отлично.

UPD2: Отличие этих двух БД состоит лишь в названии, и в том, что во втором случае у БД есть текстовые поля.
Вот структура таблицы:
id - int(11) AI
title - varchar(255)
tags - text
text - text
pic - text
  • Вопрос задан
  • 160 просмотров
Подписаться 2 Простой 6 комментариев
Решения вопроса 1
cesnokov
@cesnokov
<head>&nbsp;</head>
Ищите ошибку в форме, она должна выглядеть как то так:
<form action="post_create.php" method="post" enctype="multipart/form-data">
    <input type="text" name="title">
    <input type="text" name="tags">
    <input type="text" name="text">
    <input type="file" name="pic">
    <input type="submit" name="submit" value="Submit">
</form>
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы