131 lines
5.1 KiB
PHP
131 lines
5.1 KiB
PHP
<?php
|
|
// test_add_simple.php - максимально простая форма добавления
|
|
session_start();
|
|
|
|
// Временно отключаем проверку админа для теста
|
|
// if (!isset($_SESSION['isAdmin']) || $_SESSION['isAdmin'] !== true) {
|
|
// die("Требуется авторизация администратора");
|
|
// }
|
|
|
|
require_once 'config/database.php';
|
|
$db = Database::getInstance()->getConnection();
|
|
|
|
// Обработка формы
|
|
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
|
$action = $_POST['action'] ?? '';
|
|
|
|
if ($action === 'add_category') {
|
|
$name = $_POST['name'] ?? '';
|
|
$slug = preg_replace('/[^a-z0-9]/i', '-', strtolower($name));
|
|
|
|
try {
|
|
$stmt = $db->prepare("INSERT INTO categories (name, slug) VALUES (?, ?)");
|
|
$result = $stmt->execute([$name, $slug]);
|
|
|
|
if ($result) {
|
|
$message = "✅ Категория '$name' успешно добавлена!";
|
|
$message_class = "success";
|
|
} else {
|
|
$message = "❌ Ошибка при добавлении категории";
|
|
$message_class = "error";
|
|
}
|
|
} catch (PDOException $e) {
|
|
$message = "❌ Ошибка БД: " . $e->getMessage();
|
|
$message_class = "error";
|
|
}
|
|
}
|
|
|
|
if ($action === 'add_product') {
|
|
$name = $_POST['product_name'] ?? '';
|
|
$price = floatval($_POST['price'] ?? 0);
|
|
$category_id = intval($_POST['category_id'] ?? 1);
|
|
$slug = preg_replace('/[^a-z0-9]/i', '-', strtolower($name));
|
|
|
|
try {
|
|
$stmt = $db->prepare("INSERT INTO products (category_id, name, slug, price, stock_quantity, is_available) VALUES (?, ?, ?, ?, ?, ?)");
|
|
$result = $stmt->execute([$category_id, $name, $slug, $price, 10, true]);
|
|
|
|
if ($result) {
|
|
$message = "✅ Товар '$name' успешно добавлен!";
|
|
$message_class = "success";
|
|
} else {
|
|
$message = "❌ Ошибка при добавлении товара";
|
|
$message_class = "error";
|
|
}
|
|
} catch (PDOException $e) {
|
|
$message = "❌ Ошибка БД: " . $e->getMessage();
|
|
$message_class = "error";
|
|
}
|
|
}
|
|
}
|
|
|
|
// Получить категории для выпадающего списка
|
|
$categories = [];
|
|
try {
|
|
$categories = $db->query("SELECT * FROM categories")->fetchAll();
|
|
} catch (Exception $e) {
|
|
$categories_error = "Ошибка получения категорий: " . $e->getMessage();
|
|
}
|
|
|
|
?>
|
|
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<title>Тестовое добавление</title>
|
|
<style>
|
|
body { font-family: Arial, sans-serif; padding: 20px; }
|
|
.message { padding: 10px; margin: 10px 0; border-radius: 5px; }
|
|
.success { background: #d4edda; color: #155724; border: 1px solid #c3e6cb; }
|
|
.error { background: #f8d7da; color: #721c24; border: 1px solid #f5c6cb; }
|
|
form { margin: 20px 0; padding: 20px; border: 1px solid #ddd; border-radius: 5px; }
|
|
input, select, button { padding: 8px; margin: 5px 0; }
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<h1>Тестовое добавление</h1>
|
|
|
|
<?php if (isset($message)): ?>
|
|
<div class="message <?= $message_class ?>"><?= $message ?></div>
|
|
<?php endif; ?>
|
|
|
|
<form method="POST">
|
|
<h2>Добавить категорию</h2>
|
|
<input type="hidden" name="action" value="add_category">
|
|
<input type="text" name="name" placeholder="Название категории" required>
|
|
<button type="submit">Добавить категорию</button>
|
|
</form>
|
|
|
|
<form method="POST">
|
|
<h2>Добавить товар</h2>
|
|
<input type="hidden" name="action" value="add_product">
|
|
<input type="text" name="product_name" placeholder="Название товара" required><br>
|
|
<input type="number" name="price" placeholder="Цена" required step="0.01"><br>
|
|
|
|
<select name="category_id">
|
|
<?php if (!empty($categories)): ?>
|
|
<?php foreach ($categories as $cat): ?>
|
|
<option value="<?= $cat['category_id'] ?>"><?= htmlspecialchars($cat['name']) ?></option>
|
|
<?php endforeach; ?>
|
|
<?php else: ?>
|
|
<option value="1">Нет категорий (используется ID 1)</option>
|
|
<?php endif; ?>
|
|
</select><br>
|
|
|
|
<button type="submit">Добавить товар</button>
|
|
</form>
|
|
|
|
<hr>
|
|
|
|
<h2>Существующие категории (<?= count($categories) ?>):</h2>
|
|
<ul>
|
|
<?php foreach ($categories as $cat): ?>
|
|
<li>ID: <?= $cat['category_id'] ?> - <?= htmlspecialchars($cat['name']) ?></li>
|
|
<?php endforeach; ?>
|
|
</ul>
|
|
|
|
<?php if (isset($categories_error)): ?>
|
|
<div class="message error"><?= $categories_error ?></div>
|
|
<?php endif; ?>
|
|
</body>
|
|
</html>
|