false, 'message' => 'Invalid security token. Please refresh the page and try again.']); exit; } // Get and validate input data $name = trim($_POST['name'] ?? ''); $mobile = trim($_POST['mobile'] ?? ''); $email = trim($_POST['email'] ?? ''); $subject = trim($_POST['subject'] ?? ''); $message = trim($_POST['message'] ?? ''); // Check required fields if (empty($name)) { echo json_encode(['success' => false, 'message' => 'Name is required']); exit; } if (empty($mobile)) { echo json_encode(['success' => false, 'message' => 'Mobile number is required']); exit; } if (empty($subject)) { echo json_encode(['success' => false, 'message' => 'Subject is required']); exit; } if (empty($message)) { echo json_encode(['success' => false, 'message' => 'Message is required']); exit; } // Validate mobile number if (!validateMobileNumber($mobile)) { echo json_encode(['success' => false, 'message' => 'Please enter a valid 10-digit mobile number starting with 6, 7, 8, or 9']); exit; } // Validate email if provided if (!empty($email) && !filter_var($email, FILTER_VALIDATE_EMAIL)) { echo json_encode(['success' => false, 'message' => 'Please enter a valid email address']); exit; } // Sanitize inputs $name = sanitizeInput($name); $mobile = sanitizeInput($mobile); $email = sanitizeInput($email); $subject = sanitizeInput($subject); $message = sanitizeInput($message); // Get database connection $pdo = getDbConnection(); // Insert complaint into database $stmt = $pdo->prepare("INSERT INTO complaints (name, mobile, email, subject, message, status, created_at) VALUES (?, ?, ?, ?, ?, 'pending', NOW())"); $result = $stmt->execute([$name, $mobile, $email, $subject, $message]); if ($result) { echo json_encode([ 'success' => true, 'message' => 'Your complaint has been submitted successfully! We will contact you soon.' ]); } else { echo json_encode(['success' => false, 'message' => 'Failed to submit complaint. Please try again.']); } } catch (Exception $e) { // Log the detailed error for debugging logError("Complaint submission error: " . $e->getMessage() . " | Line: " . $e->getLine() . " | File: " . $e->getFile()); echo json_encode(['success' => false, 'message' => 'Database error occurred. Please try again later.']); } exit; // Important: stop execution after handling AJAX request } // Continue with normal page rendering only if it's not an AJAX request include 'header.php'; include 'navbar.php'; ?>

Submit Your Problem