Källkodsbrowser

process_purchase.php

49 lines UTF-8 Unix (LF)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<?php
session_start
();
require 
'check_login.php';
require 
'db_connect.php';

$user_id $_SESSION['user_id'];
$cart_items $_SESSION['cart'] ?? [];

if (empty(
$cart_items)) {
    
header("Location: cart.php?msg=Kundvagnen är tom.");
    exit();
}

try {
    
$pdo->beginTransaction();

    
// 1. Skapa en ny order
    
$stmt $pdo->prepare("INSERT INTO `order` (customer_id, payment_da) VALUES (?, NOW())");
    
$stmt->execute([$user_id]);
    
$order_id $pdo->lastInsertId();

    
// 2. Lägg till böckerna i ordern (bookorder)
    
foreach ($cart_items as $item) {
        
$stmt $pdo->prepare("INSERT INTO bookorder (quantity, price, order_order, book_book_id) VALUES (?, ?, ?, ?)");
        
$stmt->execute([
            
$item['quantity'],
            
$item['price'],
            
$order_id,
            
$item['book_id']
        ]);
    }

    
// 3. Töm kundvagnen
    
unset($_SESSION['cart']);

    
$pdo->commit();

    
// Omdirigera till en bekräftelsesida
    
header("Location: user.php?msg=Tack för ditt köp! En bekräftelse har registrerats i dina transaktioner. Din bok är redo att hämtas på närmaste bibliotek.");
    exit();

} catch (
\PDOException $e) {
    
$pdo->rollBack();
    
error_log("Database error during purchase: " $e->getMessage());
    
header("Location: cart.php?msg=Ett fel uppstod vid köpet. Försök igen.");
    exit();
}
?>