t-r.de/content/php/subscribe.php

33 lines
1.3 KiB
PHP

<?php
// inspired by https://www.mailgun.com/blog/email/double-opt-in-with-php-mailgun/
$successURL = '/newsletter/subscribed.html';
$errorURL = '/newsletter/subscribe-error.html';
require(dirname(__FILE__) . '/settings.php');
function MakeConfirmationHash($confEmail, $confCode) {
return md5($confEmail . $confCode);
}
if (isset($_POST['email'])) {
$email = filter_var(trim($_POST['email'], FILTER_SANITIZE_STRING));
error_log("Email ist: {$email}");
if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
$hashedUnique = MakeConfirmationHash($email, $general['uniqueKey']);
$confirmQuery = http_build_query(['c' => $hashedUnique, 'e' => $email]);
$confirmLink = $general['siteURL'] . $general['confirmScript'] . "?" . $confirmQuery;
$result = SendEmail($email, $mailConfirmation, $confirmLink);
if ( $result == TRUE ) {
GracefulExit($successURL, 'Anmeldung wird fortgesetzt: Email mit Bestätigungslink wurde versandt.');
} else {
GracefulExit($errorURL, 'Anmeldung fehlgeschlagen: Fehler beim Versenden der Bestätigungs-Email.');
}
} else {
GracefulExit($errorURL, 'Anmeldung fehlgeschlagen: Ungültige Emailadresse.');
}
} else {
GracefulExit($errorURL, 'Anmeldung fehlgeschlagen: Keine Emailadresse angegeben.');
}
?>