diff --git a/.perm_test_apache b/.perm_test_apache deleted file mode 100644 index e69de29..0000000 diff --git a/.perm_test_exec b/.perm_test_exec deleted file mode 100644 index e69de29..0000000 diff --git a/admin.php b/admin.php deleted file mode 100644 index d2eff22..0000000 --- a/admin.php +++ /dev/null @@ -1,194 +0,0 @@ - - - - - - - Админ-панель - Вход - - - -
-
-
-

Вход в админ-панель

-
-
- - -
- -
- - -
-
-
-
- - - prepare('INSERT INTO bouquets (name, description, price, image_url) VALUES (?, ?, ?, ?)'); - $stmt->execute([$name, $description, $price, $image_url]); - header('Location: admin.php'); - exit; -} - -// Редактирование букета -if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['edit_bouquet'])) { - $id = $_POST['id']; - $name = $_POST['name']; - $description = $_POST['description']; - $price = $_POST['price']; - $image_url = $_POST['image_url']; - - $pdo = db(); - $stmt = $pdo->prepare('UPDATE bouquets SET name = ?, description = ?, price = ?, image_url = ? WHERE id = ?'); - $stmt->execute([$name, $description, $price, $image_url, $id]); - header('Location: admin.php'); - exit; -} - -// Удаление букета -if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['delete_bouquet'])) { - $id = $_POST['id']; - $pdo = db(); - $stmt = $pdo->prepare('DELETE FROM bouquets WHERE id = ?'); - $stmt->execute([$id]); - header('Location: admin.php'); - exit; -} - - -// --- Получение данных --- -$pdo = db(); -$bouquets = $pdo->query('SELECT * FROM bouquets ORDER BY id DESC')->fetchAll(); - -$edit_bouquet_data = null; -if (isset($_GET['edit'])) { - $id = $_GET['edit']; - $stmt = $pdo->prepare('SELECT * FROM bouquets WHERE id = ?'); - $stmt->execute([$id]); - $edit_bouquet_data = $stmt->fetch(); -} - -?> - - - - - - Админ-панель - - - - - -
-
- -
-

-
- - - -
- - -
-
- - -
-
- - -
-
- - -
- - - Отмена - - - -
-
- - -
-

Список букетов

- - - - - - - - - - - - - - - - - - - - - -
IDФотоНазваниеЦенаДействия
- Ред. -
- - -
-
-
-
-
- - diff --git a/admin/config.php b/admin/config.php new file mode 100644 index 0000000..769a370 --- /dev/null +++ b/admin/config.php @@ -0,0 +1,5 @@ + \ No newline at end of file diff --git a/admin/index.php b/admin/index.php new file mode 100644 index 0000000..8d8fc7f --- /dev/null +++ b/admin/index.php @@ -0,0 +1,45 @@ + + + + + + + Admin Login + + + +
+
+
+
+
+

Admin Login

+
+
+ + +
+
+ + +
+ + + + +
+
+
+
+
+
+ + \ No newline at end of file diff --git a/assets/pasted-20250911-144550-1391137a.png b/assets/pasted-20250911-144550-1391137a.png deleted file mode 100644 index cf2ec89..0000000 Binary files a/assets/pasted-20250911-144550-1391137a.png and /dev/null differ diff --git a/assets/pasted-20250911-145034-379d8f9f.jpg b/assets/pasted-20250911-145034-379d8f9f.jpg deleted file mode 100644 index 87d28b3..0000000 Binary files a/assets/pasted-20250911-145034-379d8f9f.jpg and /dev/null differ diff --git a/assets/pasted-20250912-055700-2ffe9102.webp b/assets/pasted-20250912-055700-2ffe9102.webp deleted file mode 100644 index 695682b..0000000 Binary files a/assets/pasted-20250912-055700-2ffe9102.webp and /dev/null differ diff --git a/assets/pasted-20250912-055950-2c69346a.jpg b/assets/pasted-20250912-055950-2c69346a.jpg deleted file mode 100644 index 95e7ec7..0000000 Binary files a/assets/pasted-20250912-055950-2c69346a.jpg and /dev/null differ diff --git a/assets/pasted-20250912-060344-25dc7fb1.png b/assets/pasted-20250912-060344-25dc7fb1.png deleted file mode 100644 index 5d8cef5..0000000 Binary files a/assets/pasted-20250912-060344-25dc7fb1.png and /dev/null differ diff --git a/assets/pasted-20250912-060647-670fa2ea.png b/assets/pasted-20250912-060647-670fa2ea.png deleted file mode 100644 index 19c4af3..0000000 Binary files a/assets/pasted-20250912-060647-670fa2ea.png and /dev/null differ diff --git a/assets/pasted-20250912-061014-fa7d3929.png b/assets/pasted-20250912-061014-fa7d3929.png deleted file mode 100644 index 711f5a6..0000000 Binary files a/assets/pasted-20250912-061014-fa7d3929.png and /dev/null differ diff --git a/assets/pasted-20250912-061230-643b547e.png b/assets/pasted-20250912-061230-643b547e.png deleted file mode 100644 index 38b5be6..0000000 Binary files a/assets/pasted-20250912-061230-643b547e.png and /dev/null differ diff --git a/assets/pasted-20250912-061518-a2e75345.png b/assets/pasted-20250912-061518-a2e75345.png deleted file mode 100644 index 7f1b2ef..0000000 Binary files a/assets/pasted-20250912-061518-a2e75345.png and /dev/null differ diff --git a/assets/pasted-20250912-062228-c4ca0869.png b/assets/pasted-20250912-062228-c4ca0869.png deleted file mode 100644 index 38b5be6..0000000 Binary files a/assets/pasted-20250912-062228-c4ca0869.png and /dev/null differ diff --git a/assets/pasted-20250912-162635-e80fb623.png b/assets/pasted-20250912-162635-e80fb623.png deleted file mode 100644 index a75148e..0000000 Binary files a/assets/pasted-20250912-162635-e80fb623.png and /dev/null differ diff --git a/assets/pasted-20250912-164546-80d36162.png b/assets/pasted-20250912-164546-80d36162.png deleted file mode 100644 index a0e0c83..0000000 Binary files a/assets/pasted-20250912-164546-80d36162.png and /dev/null differ diff --git a/assets/pasted-20250912-164950-93be8050.png b/assets/pasted-20250912-164950-93be8050.png deleted file mode 100644 index ca574c9..0000000 Binary files a/assets/pasted-20250912-164950-93be8050.png and /dev/null differ diff --git a/db/migrations/001_initial_schema.sql b/db/migrations/001_initial_schema.sql deleted file mode 100644 index 9325f6d..0000000 --- a/db/migrations/001_initial_schema.sql +++ /dev/null @@ -1,31 +0,0 @@ - -CREATE TABLE IF NOT EXISTS `bouquets` ( - `id` INT AUTO_INCREMENT PRIMARY KEY, - `name` VARCHAR(255) NOT NULL, - `description` TEXT, - `price` DECIMAL(10, 2) NOT NULL, - `image_url` VARCHAR(255) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - -CREATE TABLE IF NOT EXISTS `orders` ( - `id` INT AUTO_INCREMENT PRIMARY KEY, - `customer_name` VARCHAR(255) NOT NULL, - `bouquet_id` INT NOT NULL, - `phone` VARCHAR(50) NOT NULL, - `address` TEXT NOT NULL, - `delivery_date` DATE NOT NULL, - `order_date` TIMESTAMP DEFAULT CURRENT_TIMESTAMP, - FOREIGN KEY (`bouquet_id`) REFERENCES `bouquets`(`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - -CREATE TABLE IF NOT EXISTS `migrations` ( - `migration` VARCHAR(255) NOT NULL, - PRIMARY KEY (`migration`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - --- Insert some sample bouquets -INSERT INTO `bouquets` (`name`, `description`, `price`, `image_url`) VALUES -('Classic Rose Bouquet', 'A beautiful bouquet of one dozen red roses.', 45.99, 'https://picsum.photos/seed/rose-bouquet/800/600'), -('Sunny Day Bouquet', 'A cheerful mix of sunflowers and white daisies.', 35.50, 'https://picsum.photos/seed/sunflower-bouquet/800/600'), -('Elegant Lily Bouquet', 'Stunning white lilies for any occasion.', 55.00, 'https://picsum.photos/seed/lily-bouquet/800/600'), -('Vibrant Tulip Mix', 'A colorful assortment of fresh tulips.', 42.75, 'https://picsum.photos/seed/tulip-bouquet/800/600'); diff --git a/db/migrations/002_add_note_to_orders.sql b/db/migrations/002_add_note_to_orders.sql deleted file mode 100644 index e321bc5..0000000 --- a/db/migrations/002_add_note_to_orders.sql +++ /dev/null @@ -1 +0,0 @@ -ALTER TABLE `orders` ADD COLUMN `note` TEXT NULL DEFAULT NULL AFTER `delivery_date`; \ No newline at end of file diff --git a/index.php b/index.php index e75fa33..286f34c 100644 --- a/index.php +++ b/index.php @@ -1,444 +1,190 @@ exec('CREATE TABLE IF NOT EXISTS `migrations` (`migration` VARCHAR(255) NOT NULL, PRIMARY KEY (`migration`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;'); - $executed_migrations_stmt = $pdo->query('SELECT migration FROM migrations'); - $executed_migrations = $executed_migrations_stmt->fetchAll(PDO::FETCH_COLUMN); - $migration_files = glob('db/migrations/*.sql'); - sort($migration_files); - foreach ($migration_files as $file) { - $migration_name = basename($file); - if (!in_array($migration_name, $executed_migrations)) { - $sql = file_get_contents($file); - $pdo->exec($sql); - $stmt = $pdo->prepare('INSERT INTO migrations (migration) VALUES (?)'); - $stmt->execute([$migration_name]); - } - } -} catch (PDOException $e) { - error_log('Migration Error: ' . $e->getMessage()); -} -// --- END DB MIGRATIONS --- - -$p_title = 'Цветочный магазин'; -$p_description = 'Красивые букеты на любой случай.'; - -try { - $pdo = db(); - $stmt = $pdo->query('SELECT * FROM bouquets ORDER BY name ASC'); - $bouquets = $stmt->fetchAll(); -} catch (PDOException $e) { - error_log('DB Error: ' . $e->getMessage()); - $bouquets = []; - $db_error = 'К сожалению, мы не смогли загрузить букеты в данный момент. Пожалуйста, попробуйте еще раз позже.'; -} - -$status_message = ''; -if ($_SERVER['REQUEST_METHOD'] === 'POST') { - $customer_name = trim($_POST['name'] ?? ''); - $bouquet_id = (int)($_POST['bouquet'] ?? 0); - $phone = trim($_POST['phone'] ?? ''); - $address = trim($_POST['address'] ?? ''); - $delivery_date = trim($_POST['delivery_date'] ?? ''); - $note = trim($_POST['note'] ?? ''); - - if (empty($customer_name) || empty($bouquet_id) || empty($phone) || empty($address) || empty($delivery_date)) { - $status_message = '
Пожалуйста, заполните все обязательные поля.
'; - } else { - try { - $sql = "INSERT INTO orders (customer_name, bouquet_id, phone, address, delivery_date, note) VALUES (:name, :bouquet, :phone, :address, :date, :note)"; - $stmt = $pdo->prepare($sql); - $stmt->execute([ - ':name' => $customer_name, - ':bouquet' => $bouquet_id, - ':phone' => $phone, - ':address' => $address, - ':date' => $delivery_date, - ':note' => $note - ]); - $status_message = '
Спасибо за ваш заказ! Мы скоро с вами свяжемся.
'; - } catch (PDOException $e) { - error_log('Order submission error: ' . $e->getMessage()); - $status_message = '
Не удалось обработать ваш заказ. Пожалуйста, попробуйте еще раз.
'; - } +// Handle form submission +if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['customer_name'])) { + try { + $pdoconnection = db(); + $statement = $pdoconnection->prepare( + 'INSERT INTO orders (customer_name, phone, address, bouquet_id) VALUES (:customer_name, :phone, :address, :bouquet_id)' + ); + $statement->execute([ + ':customer_name' => $_POST['customer_name'], + ':phone' => $_POST['phone'], + ':address' => $_POST['address'], + ':bouquet_id' => (int)$_POST['bouquet_id'], + ]); + // Redirect or show success message + header('Location: ' . $_SERVER['PHP_SELF'] . '?order=success'); + exit; + } catch (PDOException $e) { + die("Order placement failed: " . $e->getMessage()); } } + +try { + $pdoconnection = db(); + $statement = $pdoconnection->query('SELECT id, name, description, price, image_url FROM bouquets'); + $bouquets = $statement->fetchAll(); +} catch (PDOException $e) { + die("Database error: " . $e->getMessage()); +} + ?> - + - - - - <?= htmlspecialchars($p_title) ?> - + + + Flower Shop + - + - -