prepare("SELECT *, (passwortcode_time IS NOT NULL AND passwortcode_time > DATE_SUB(NOW(), INTERVAL 24 HOUR)) AS code_noch_gueltig FROM intern_users WHERE id = :userid"); $result = $statement->execute(array('userid' => $userid)); $user = $statement->fetch(); //Überprüfe dass ein Nutzer gefunden wurde und dieser auch ein Authentifizierungscode angefordert hat // fetch() liefert false und nicht null, wenn kein Benutzer gefunden wird - // die alte Bedingung griff daher nie und lief mit false in den Array-Zugriff. if(!$user || $user['passwortcode'] === null) { error("Der Benutzer wurde nicht gefunden oder hat kein ein Authentifizierungscode angefordert."); $showForm = false; } // Ablauf in SQL pruefen: passwortcode_time wird mit NOW() gesetzt (Uhr des // DB-Servers), waehrend PHP auf dem Webserver in einer anderen Zeitzone // laeuft. strtotime()/time() lag hier um genau diese Differenz daneben. if(!$user['code_noch_gueltig']) { error("Dein Code ist leider abgelaufen. Bitte benutze die Authentifizierungsfunktion erneut."); $showForm = false; } //Überprüfe den Passwortcode if(sha1($code) != $user['passwortcode']) { error("Der übergebene Code war ungültig. Stell sicher, dass du den genauen Link in der URL aufgerufen hast. Solltest du mehrmals die Authentifizierungsfunktion genutzt haben, so ruf den Link in der neuesten E-Mail auf."); $showForm = false; } include("templates/header.inc.php"); ?>

Authentifizierung

Ihr Benutzerkonto ist schon authentifiziert.

"; }elseif($showForm){ // (hier stand ein password_hash() auf einer nie gesetzten Variablen, dessen // Ergebnis niemand benutzt hat - es warf nur eine Deprecation-Warnung) $statement = $pdo->prepare("UPDATE intern_users SET mailreg='1', passwortcode = NULL, passwortcode_time = NULL WHERE id = :userid"); $result = $statement->execute(array('userid'=> $userid )); if($result) { $msg = "

Die Authentifizierung Ihre Kontos wurde erfolgreich abgeschlossen.

"; $showForm = false; } }else{ echo "

Die Authentifizierungsfunktion steht mit den angegebenen Daten nicht zur Verfügung.

"; } if(isset($msg)) { echo $msg; } echo "

"; echo "

"; echo "
"; echo ""; echo "
"; echo '
'; echo "

"; echo "

"; echo "

"; echo "

"; ?>