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


<?php
session_start();

// Проверяем, что корзина не пуста и пользователь авторизован
if (empty( $_SESSION['cart']) || !isset( $_SESSION['user'])) {
    header('Location: cart.php');
    exit;
}

// Пример массива товаров (замените на запрос к БД в реальном проекте)
$products = [
    1 => ['name' => 'Монитор AOC 24"', 'price' => 15990],
    2 => ['name' => 'Мышь Razer DeathAdder', 'price' => 4990],
    3 => ['name' => 'Клавиатура Logitech K120', 'price' => 3490],
    4 => ['name' => 'Наушники Sony WH-1000XM4', 'price' => 24990],
];

// Расчёт итогов
$total_items = 0;
$total_price = 0;
$cart_items = [];
foreach ( $_SESSION['cart'] as $product_id => $qty) {
    if (isset( $products[$product_id])) {
        $product = $products[$product_id];
        $item_price = $product['price'] * $qty;
        $cart_items[] = [
            'id' => $product_id,
            'name' => $product['name'],
            'price' => $product['price'],
            'qty' => $qty,
            'item_price' => $item_price
        ];
        $total_items += $qty;
        $total_price += $item_price;
    }
}

// Обработка формы оформления заказа
$errors = [];
$success = false;
if ( $_SERVER['REQUEST_METHOD'] === 'POST') {
    // Валидация данных
    $name = trim( $_POST['name'] ?? '');
    $phone = trim( $_POST['phone'] ?? '');
    $address = trim( $_POST['address'] ?? '');
    $comment = trim( $_POST['comment'] ?? '');

    if ( $name === '') $errors[] = 'Укажите имя';
    if ( $phone === '') $errors[] = 'Укажите телефон';
    if ( $address === '') $errors[] = 'Укажите адрес доставки';

    // Если ошибок нет — оформляем заказ
    if (empty( $errors)) {
        // Здесь должна быть логика сохранения заказа в БД
        // Для примера просто очищаем корзину и выводим сообщение
        $_SESSION['cart'] = [];
        $success = true;
    }
}
?>
<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Оформление заказа</title>
    <style>
        * { margin:0; padding:0; box-sizing:border-box; }
        body { font-family:Arial, sans-serif; background:#f4f4f4; color:#333; }
        .container { max-width:1200px; margin:auto; padding:20px; }
        .breadcrumbs { margin-bottom:20px; }
        .breadcrumbs a { color:#27ae60; text-decoration:none; }
        .checkout-grid { display:grid; grid-template-columns:2fr 1fr; gap:40px; }
        @media (max-width:768px) { .checkout-grid { grid-template-columns:1fr; } }
        .order-summary { background:#fff; padding:20px; border-radius:8px; box-shadow:0 2px 8px rgba(0,0,0,.1); }
        .order-summary h3 { margin-bottom:15px; font-size:1.2em; }
        .summary-item { display:flex; justify-content:space-between; margin-bottom:10px; font-size:1.1em; }
        .summary-item strong { color:#e74c3c; }
        .form-group { margin-bottom:20px; }
        .form-group label { display:block; margin-bottom:8px; font-weight:bold; }
        .form-group input, .form-group textarea { width:100%; padding:10px; border:1px solid #ccc; border-radius:4px; }
        .form-group textarea { height:100px; resize:none; }
        .btn-submit { display:inline-block; background:#3498db; color:#fff; padding:12px 25px; text-decoration:none; border-radius:6px; font-weight:bold; transition:background .3s;}
        .btn-submit:hover { background:#2980b9; }
        .error-message { color:#e74c3c; margin-bottom:20px; padding:10px; background:#fdf2f2; border-radius:4px;}
        .success-message { color:#2ecc71; margin-bottom:20px; padding:10px; background:#f0fff4; border-radius:4px;}
    </style>
</head>
<body>

<div class="container">

    <!-- Хлебные крошки -->
    <div class="breadcrumbs">
      <a href="index.php">Главная</a> > <a href="cart.php">Корзина</a> > Оформление заказа
    </div>

    <h1>Оформление заказа</h1>

    <?php if ( $success): ?>
      <div class="success-message">
          Ваш заказ успешно оформлен! Номер заказа будет отправлен на вашу почту или телефон.
          <br><br>
          <a href="index.php" class="btn-submit">Вернуться на главную</a>
      </div>
    <?php else: ?>

      <div class="checkout-grid">

          <!-- Форма оформления заказа -->
          <div>
              <?php if (!empty( $errors)): ?>
                  <div class="error-message">
                      <strong>Пожалуйста, исправьте следующие ошибки:</strong>
                      <ul>
                          <?php foreach ( $errors as $error): ?>
                              <li><?= htmlspecialchars( $error) ?></li>
                          <?php endforeach; ?>
                      </ul>
                  </div>
              <?php endif; ?>

              <form method="POST" action="checkout.php">
                  <div class="form-group">
                      <label for="name">Ваше имя:</label>
                      <input type="text" id="name" name="name" value="<?= htmlspecialchars( $name ?? '') ?>" required>
                  </div>
                  <div class="form-group">
                      <label for="phone">Телефон:</label>
                      <input type="tel" id="phone" name="phone" value="<?= htmlspecialchars( $phone ?? '') ?>" required>
                  </div>
                  <div class="form-group">
                      <label for="address">Адрес доставки:</label>
                      <input type="text" id="address" name="address" value="<?= htmlspecialchars( $address ?? '') ?>" required>
                  </div>
                  <div class="form-group">
                      <label for="comment">Комментарий к заказу (необязательно):</label>
                      <textarea id="comment" name="comment"><?= htmlspecialchars( $comment ?? '') ?></textarea>
                  </div>
                  <button type="submit" class="btn-submit">Оформить заказ</button>
              </form>
          </div>

          <!-- Итоги заказа -->
          <div class="order-summary">
              <h3>Ваш заказ</h3>
              <?php foreach ( $cart_items as $item): ?>
                  <p><?= htmlspecialchars( $item['name']) ?> × <?= $item['qty'] ?> шт. — <?= number_format( $item['item_price'], 0, '', ' ') ?> ₽</p>
              <?php endforeach; ?>
              <hr>
              <div class="summary-item"><strong>Итого товаров:</strong> <?= $total_items ?> шт.</div>
              <div class="summary-item"><strong>Общая сумма:</strong> <?= number_format( $total_price, 0, '', ' ') ?> ₽</div>
          </div>

      </div>

    <?php endif; ?>

</div>

</body>
</html>