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']);
} |