JeffLiteral Ответов: 1

Загрузите имя файла в базу данных с PHP. Имя файла не отображается в базе данных


У меня есть следующие коды, которые я думаю, что это нормально. К сожалению, это не работает так, как ожидалось. Может ли кто-нибудь помочь мне разобраться в ошибках следующих кодов внутри codes.php-что?

if(isset($_POST['upload_image_btn'])){

    $image = $_POST['image_name']['name'];
    $category = $_POST['add_category'];
    $title = $_POST['add_title'];
    $description = $_POST['add_description'];
    $author = $_POST['add_author'];
    $division = $_POST['add_division'];
    $image_path = 'images/illustration/'.$image;

    if(file_exists('images/illustration/'.$_FILES['image_name']['name']))
    {
        $store = $_FILES['image_name']['name'];
        $_SESSION['status']= "The Illustration "$store" you are uploading already exist. You may rename the file if you think it is a system error. Thank you.";
        header ('Location: media_upload.php');
    }
    else  
    {   
                    $query = "INSERT INTO `illustration` (`illustration_image`, `category`, `title`, `description`, `author`, `division`, `path`)
                                VALUES ('$image', '$category', '$title', '$description', '$author', '$division', '$image_path')";

                    $query_run = mysqli_query($connection, $query);

                            if($query_run)
                            {
                                move_uploaded_file($_FILES['image_name']['tmp_name'], 'images/illustration/'.$_FILES['image_name']['name']);
                                $_SESSION ['success'] = "New Illustration Successfully Added!";
                                header ('Location: media_upload.php');
                            }
                            else
                            {
                                $_SESSION ['status'] = "New Illustration Add Failed!";
                                header ('Location: media_upload.php');
                            }
    }

}


Ниже приведен код формы внутри media_upload.php.

<form action="codes.php" method='POST' enctype="multipart/form-data">
            <div class="form-group">
              <label>Illustration</label>
              <input type="file" name="image_name" class="form-control-file" required>
            </div>
            <div class="form-group">
              <label>Category</label>
              <select name="add_category" class="form-control" required>
                <option value="" selected hidden>Select a Category</option>
                <option value="Arts">Arts</option>
                <option value="Business and Enterprise">Business and Enterprise</option>
                <option value="Earth and Space">Earth and Space</option>
                <option value="Education">Education</option>
                <option value="Health">Health</option>
                <option value="History">History</option>
                <option value="Humanities (Society)">Humanities (Society)</option>
                <option value="Language">Language</option>
                <option value="Life Science">Life Science</option>
                <option value="Mathematics">Mathematics</option>
                <option value="Physical Science">Physical Science</option>
                <option value="Technology">Technology</option>
                <option value="Miscellaneous">Miscellaneous</option>
              </select>
            </div>
            <div class="form-group">
              <label>Title</label>
              <input type="text" name="add_title" class="form-control" placeholder="Enter Illustration Title" required>
            </div>
            <div class="form-group">
              <label>Description</label>
              <input type="text" name="add_description" class="form-control"

                placeholder="Enter Illustration Description" required>
            </div>
            <div class="form-group">
              <label>Author</label>
              <input type="text" name="add_author" class="form-control" placeholder="Enter Name of Illustrator"

                required>
            </div>
            <div class="form-group">
              <label>Division</label>
              <input type="text" name="add_division" class="form-control" placeholder="Enter Illustrator Division"

                required>
              <input type="hidden" name="add_date">
            </div>
            <hr><br>
            <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
            <button type="submit" name="upload_image_btn" class="btn btn-success">Upload Image</button>
          </form>


Что я уже пробовал:

Я ничего не пробовал, потому что, как я вижу, все коды в порядке. Но я думаю, что не видел ошибки.

Richard Deeming

Ваш код уязвим для SQL-инъекция[^]. НИКОГДА используйте конкатенацию строк / интерполяцию для построения SQL-запроса. ВСЕГДА используйте параметризованный запрос.

PHP: SQL-инъекция - руководство пользователя[^]

1 Ответов

Рейтинг:
7

JeffLiteral

Я сам нашел решение. Вместо использования

$image = $_POST['image_name']['name'];
Я заменил его
$_POST
с
$_FILES
и все работает нормально. :)