PHP
Intermediate
Updated 7h ago
Newsletter Signup with Double Opt-In
Newsletter signup with double opt-in flow using tokens and confirmation emails.
<?php
if ($_SERVER["REQUEST_METHOD"] === "POST" && isset($_POST["email"])) {
$email = filter_var($_POST["email"], FILTER_VALIDATE_EMAIL);
if (!$email) { die("Invalid email"); }
$token = bin2hex(random_bytes(16));
// Store: INSERT INTO subscribers (email, token, status) VALUES (?, ?, "pending")
$confirmLink = "https://yoursite.com/confirm?token=" . $token;
mail($email, "Confirm your subscription", "Click to confirm: " . $confirmLink);
echo "Check your email to confirm!";
}
if (isset($_GET["token"])) {
$token = $_GET["token"];
// UPDATE subscribers SET status = "active" WHERE token = ? AND status = "pending"
echo "Subscription confirmed!";
}
?>
<form method="POST">
<input type="email" name="email" placeholder="Enter your email" required>
<button type="submit">Subscribe</button>
</form>
Technical Breakdown
Double opt-in newsletter signup with token generation and confirmation email.
Pitfalls & Solutions
1. Not using tokens. 2. Token expiration. 3. No duplicate check.
Tags
#PHP
#Forms
#Newsletter
#Double Opt-In
#Token