File size: 3,669 Bytes
0dff816
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
<?php
// Database configuration
$host = '127.0.0.1';
$dbname = 'jweb';
$username = 'root'; 
$password = 'YourStrongPassword123'; 

// Enable error reporting for debugging
error_reporting(E_ALL);
ini_set('display_errors', 1);

header('Content-Type: application/json');

// Create database connection
try {
    $pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8", $username, $password);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
    echo json_encode(['status' => 'error', 'message' => 'Database connection failed: ' . $e->getMessage()]);
    exit;
}

// Process form submission
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    // Validate required fields
    $required_fields = ['customer_name', 'email', 'phone', 'vehicle_make', 'vehicle_model', 'service_type', 'service_name'];
    
    foreach ($required_fields as $field) {
        if (empty($_POST[$field])) {
            echo json_encode(['status' => 'error', 'message' => "Please fill in all required fields. Missing: $field"]);
            exit;
        }
    }
    
    // Sanitize input data
    $customer_name = filter_var($_POST['customer_name'], FILTER_SANITIZE_STRING);
    $email = filter_var($_POST['email'], FILTER_SANITIZE_EMAIL);
    $phone = filter_var($_POST['phone'], FILTER_SANITIZE_STRING);
    $vehicle_make = filter_var($_POST['vehicle_make'], FILTER_SANITIZE_STRING);
    $vehicle_model = filter_var($_POST['vehicle_model'], FILTER_SANITIZE_STRING);
    $vehicle_year = !empty($_POST['vehicle_year']) ? filter_var($_POST['vehicle_year'], FILTER_SANITIZE_NUMBER_INT) : null;
    $service_type = filter_var($_POST['service_type'], FILTER_SANITIZE_STRING);
    $service_name = filter_var($_POST['service_name'], FILTER_SANITIZE_STRING);
    $preferred_date = !empty($_POST['preferred_date']) ? $_POST['preferred_date'] : null;
    $preferred_time = !empty($_POST['preferred_time']) ? $_POST['preferred_time'] : null;
    $message = !empty($_POST['message']) ? filter_var($_POST['message'], FILTER_SANITIZE_STRING) : null;
    
    // Validate email
    if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
        echo json_encode(['status' => 'error', 'message' => 'Please provide a valid email address']);
        exit;
    }
    
    // Insert data into database
    try {
        $stmt = $pdo->prepare("INSERT INTO service_bookings 
            (customer_name, email, phone, vehicle_make, vehicle_model, vehicle_year, 
             service_type, service_name, preferred_date, preferred_time, message) 
            VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
        
        $stmt->execute([
            $customer_name, 
            $email, 
            $phone, 
            $vehicle_make, 
            $vehicle_model, 
            $vehicle_year, 
            $service_type, 
            $service_name, 
            $preferred_date, 
            $preferred_time, 
            $message
        ]);
        
        // Get the booking ID
        $booking_id = $pdo->lastInsertId();
        
        // Send confirmation email (optional)
        // $this->sendConfirmationEmail($email, $customer_name, $service_name, $booking_id);
        
        echo json_encode([
            'status' => 'success', 
            'message' => 'Your booking has been submitted successfully! We will contact you shortly to confirm your appointment.',
            'booking_id' => $booking_id
        ]);
        
    } catch (PDOException $e) {
        echo json_encode(['status' => 'error', 'message' => 'Failed to save booking: ' . $e->getMessage()]);
    }
} else {
    echo json_encode(['status' => 'error', 'message' => 'Invalid request method']);
}