31 lines
985 B
PHP
31 lines
985 B
PHP
<?php
|
|
declare(strict_types=1);
|
|
require_once __DIR__ . '/db/config.php';
|
|
|
|
header('Content-Type: application/json');
|
|
|
|
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
|
|
echo json_encode(['success' => false, 'message' => 'Invalid request method.']);
|
|
exit;
|
|
}
|
|
|
|
$email = filter_var($_POST['email'] ?? '', FILTER_VALIDATE_EMAIL);
|
|
|
|
if (!$email) {
|
|
echo json_encode(['success' => false, 'message' => 'Please provide a valid email address.']);
|
|
exit;
|
|
}
|
|
|
|
try {
|
|
$stmt = db()->prepare("INSERT INTO subscriptions (email) VALUES (?)");
|
|
$stmt->execute([$email]);
|
|
echo json_encode(['success' => true, 'message' => 'Subscription successful. Thank you!']);
|
|
} catch (PDOException $e) {
|
|
if ($e->getCode() === '23000') {
|
|
echo json_encode(['success' => true, 'message' => 'You are already subscribed.']);
|
|
} else {
|
|
error_log($e->getMessage());
|
|
echo json_encode(['success' => false, 'message' => 'A server error occurred. Please try again later.']);
|
|
}
|
|
}
|