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