prepare($general['sql']['create_table']); if ( ! $query->execute() ) { error_log('Datenbankfehler beim Prüfen/Erzeugen der Tabelle.'); return "Ein Fehler ist aufgetreten."; } // check if record exists $query = $pdo->prepare($general['sql']['read_record']); if ( ! $query->execute([':e' => $subscriberAddress]) ) { error_log("Datenbankfehler: Adresscheck für Emailadresse {$subscriberAddress} ergab einen Fehler."); return 'Datenbankfehler.'; } if ( $query->fetch() ) { error_log("Datenbankfehler: Emailadresse {$subscriberAddress} ist bereits eingetragen."); return "Emailadresse ist bereits eingetragen."; } // create record $query = $pdo->prepare($general['sql']['create_record']); if ( ( ! $query->execute([':e' => $subscriberAddress, ':n' => $subscriberName]) ) or ( $query->fetch() ) ) { error_log("Datenbankfehler: Einfügen von Emailadresse {$subscriberAddress} ergab einen Fehler."); return 'Datenbankfehler.'; } } catch(\PDOException $e) { error_log("Datenbankfehler: {$e->getMessage()}"); return $e->getMessage(); } return TRUE; } if (isset($_GET['c']) && isset($_GET['e'])) { $c = filter_var($_GET['c'], FILTER_SANITIZE_STRING); $e = filter_var($_GET['e'], FILTER_SANITIZE_STRING); if ( GetConfirmationHash($e) === $c ) { $result = AddSubscriberToDB($e); if ($result === TRUE) { GracefulExit($successURL, 'Bestätigung erfolgt: Newsletter-Anmeldung bestätigt'); } elseif (gettype($result == 'string')) { GracefulExit($errorURL, "Bestätigung fehlgeschlagen: {$result}"); } else { GracefulExit($errorURL, 'Bestätigung fehlgeschlagen: Unbekannter Fehler'); } } else { GracefulExit($errorURL, 'Bestätigung fehlgeschlagen: Fehlerhafter Hash'); } } else { GracefulExit($errorURL, 'Bestätigung fehlgeschlagen: Fehlende Emailadresse oder Hash'); } ?>