Загрузка данных


<?php
require "../Connect-db.php";

if (!isset($_COOKIE['saveLogin'])) {
    header("Location: ../login.php");
    exit;
}

$login = mysqli_real_escape_string($conn, $_COOKIE['saveLogin']);

$queryUser = mysqli_query($conn, "
    SELECT * FROM users
    WHERE user_email = '$login' OR user_name = '$login'
");

$user = mysqli_fetch_assoc($queryUser);

if (!$user || $user['role'] != 'admin') {
    echo "<script>
        alert('Доступ запрещён');
        location.href='../profile.php';
    </script>";
    exit;
}

if (isset($_POST['addProduct'])) {
    $name = mysqli_real_escape_string($conn, trim($_POST['name_item']));
    $price = mysqli_real_escape_string($conn, trim($_POST['price_item']));

    if ($name == '' || $price == '') {
        echo "<script>alert('Заполните название и цену');</script>";
    } else {

        if (!isset($_FILES['img_item']) || $_FILES['img_item']['error'] != 0) {
            echo "<script>alert('Выберите изображение');</script>";
        } else {
            $fileName = $_FILES['img_item']['name'];
            $tmpName = $_FILES['img_item']['tmp_name'];

            $fileExt = strtolower(pathinfo($fileName, PATHINFO_EXTENSION));
            $allowedExt = ['jpg', 'jpeg', 'png', 'webp', 'svg'];

            if (!in_array($fileExt, $allowedExt)) {
                echo "<script>alert('Разрешены только jpg, jpeg, png, webp, svg');</script>";
            } else {
                $newFileName = time() . "_" . preg_replace('/[^A-Za-z0-9_\.-]/', '_', $fileName);
                $uploadPath = "../image/" . $newFileName;

                if (move_uploaded_file($tmpName, $uploadPath)) {

                    $img = mysqli_real_escape_string($conn, $newFileName);

                    $insert = mysqli_query($conn, "
                        INSERT INTO products (name_item, price_item, img_item)
                        VALUES ('$name', '$price', '$img')
                    ");

                    if ($insert) {
                        echo "<script>
                            alert('Товар успешно добавлен');
                            location.href='admin.php?page=products';
                        </script>";
                        exit;
                    } else {
                        echo "Ошибка БД: " . mysqli_error($conn);
                    }

                } else {
                    echo "<script>alert('Ошибка загрузки файла');</script>";
                }
            }
        }
    }
}
?>
<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <title>Добавить товар</title>
    <link rel="stylesheet" href="../styles/admin.css">
</head>
<body>

<div class="admin-form-page">
    <div class="admin-form-box">
        <h1>Добавить товар</h1>

        <form method="POST" enctype="multipart/form-data">

            <div class="admin-form-group">
                <label>Название товара</label>
                <input type="text" name="name_item">
            </div>

            <div class="admin-form-group">
                <label>Цена</label>
                <input type="text" name="price_item">
            </div>

            <div class="admin-form-group">
                <label>Изображение товара</label>

                <label for="img_item" class="admin-upload-box">
                    <span>Перетащите изображение сюда или нажмите для выбора</span>
                    <input type="file" name="img_item" id="img_item" accept=".jpg,.jpeg,.png,.webp,.svg">
                </label>

                <div class="admin-file-name" id="fileName">Файл не выбран</div>
            </div>

            <div class="admin-form-buttons">
                <button type="submit" name="addProduct">Добавить</button>
                <a href="admin.php?page=products">Назад</a>
            </div>

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

<script>
const fileInput = document.getElementById('img_item');
const fileName = document.getElementById('fileName');
const uploadBox = document.querySelector('.admin-upload-box');

fileInput.addEventListener('change', function() {
    if (fileInput.files.length > 0) {
        fileName.textContent = fileInput.files[0].name;
    } else {
        fileName.textContent = 'Файл не выбран';
    }
});

uploadBox.addEventListener('dragover', function(e) {
    e.preventDefault();
    uploadBox.classList.add('dragover');
});

uploadBox.addEventListener('dragleave', function() {
    uploadBox.classList.remove('dragover');
});

uploadBox.addEventListener('drop', function(e) {
    e.preventDefault();
    uploadBox.classList.remove('dragover');

    if (e.dataTransfer.files.length > 0) {
        fileInput.files = e.dataTransfer.files;
        fileName.textContent = e.dataTransfer.files[0].name;
    }
});
</script>

</body>
</html>