|
|
<?php |
|
|
|
|
|
$host = '127.0.0.1'; |
|
|
$dbname = 'jweb'; |
|
|
$username = 'root'; |
|
|
$password = 'YourStrongPassword123'; |
|
|
|
|
|
|
|
|
error_reporting(E_ALL); |
|
|
ini_set('display_errors', 1); |
|
|
|
|
|
header('Content-Type: application/json'); |
|
|
|
|
|
|
|
|
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; |
|
|
} |
|
|
|
|
|
|
|
|
if ($_SERVER['REQUEST_METHOD'] === 'POST') { |
|
|
|
|
|
$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; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
$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; |
|
|
|
|
|
|
|
|
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { |
|
|
echo json_encode(['status' => 'error', 'message' => 'Please provide a valid email address']); |
|
|
exit; |
|
|
} |
|
|
|
|
|
|
|
|
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 |
|
|
]); |
|
|
|
|
|
|
|
|
$booking_id = $pdo->lastInsertId(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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']); |
|
|
} |