35122-vm/request-service.php
Flatlogic Bot 2e32207c38 001
2025-10-22 18:57:21 +00:00

101 lines
4.3 KiB
PHP

<?php
require_once __DIR__ . '/mail/MailService.php';
$page_title = 'Request a Service';
$message = '';
$message_type = '';
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$name = trim($_POST['name'] ?? '');
$email = trim($_POST['email'] ?? '');
$service_message = trim($_POST['message'] ?? '');
if (empty($name) || empty($email) || empty($service_message) || !filter_var($email, FILTER_VALIDATE_EMAIL)) {
$message = 'Please fill in all fields correctly.';
$message_type = 'danger';
} else {
try {
$pdo = db();
$stmt = $pdo->prepare(
'INSERT INTO service_requests (name, email, message) VALUES (?, ?, ?)'
);
$stmt->execute([$name, $email, $service_message]);
// Notify Admin
$admin_email = getenv('MAIL_TO') ?: 'admin@example.com';
$subject = 'New Service Request from ' . $name;
$html_content = "
<h1>New Service Request</h1>
<p><strong>Name:</strong> {$name}</p>
<p><strong>Email:</strong> {$email}</p>
<p><strong>Message:</strong></p>
<p>{$service_message}</p>
<p>This request is now pending approval in the admin dashboard.</p>
";
$text_content = strip_tags($html_content);
MailService::sendMail($admin_email, $subject, $html_content, $text_content);
$message = 'Thank you! Your service request has been submitted successfully. An account manager will review it shortly.';
$message_type = 'success';
} catch (PDOException $e) {
// In a real app, log this error.
$message = 'Sorry, there was an error submitting your request. Please try again later.';
$message_type = 'danger';
} catch (Exception $e) {
$message = 'Sorry, there was an error sending the notification. Please try again later.';
$message_type = 'danger';
}
}
}
require_once __DIR__ . '/header.php';
?>
<div class="row justify-content-center">
<div class="col-lg-8">
<div class="card shadow-sm">
<div class="card-body p-5">
<h1 class="card-title text-center mb-4"><?php echo $page_title; ?></h1>
<?php if ($message): ?>
<div class="alert alert-<?php echo $message_type; ?> alert-dismissible fade show" role="alert">
<?php echo htmlspecialchars($message); ?>
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
</div>
<?php endif; ?>
<?php if ($message_type !== 'success'): ?>
<form action="request-service.php" method="POST" class="needs-validation" novalidate>
<div class="mb-3">
<label for="name" class="form-label">Full Name</label>
<input type="text" class="form-control" id="name" name="name" required>
<div class="invalid-feedback">
Please enter your full name.
</div>
</div>
<div class="mb-3">
<label for="email" class="form-label">Email Address</label>
<input type="email" class="form-control" id="email" name="email" required>
<div class="invalid-feedback">
Please enter a valid email address.
</div>
</div>
<div class="mb-3">
<label for="message" class="form-label">Describe the service you need</label>
<textarea class="form-control" id="message" name="message" rows="5" required></textarea>
<div class="invalid-feedback">
Please describe the service you require.
</div>
</div>
<div class="text-center">
<button type="submit" class="btn btn-primary btn-lg px-5">Submit Request</button>
</div>
</form>
<?php endif; ?>
</div>
</div>
</div>
</div>
<?php require_once __DIR__ . '/footer.php'; ?>