'Seminar_Session', 'auth' => 'Seminar_Default_Auth', 'perm' => 'Seminar_Perm', 'user' => 'Seminar_User']); function head($headline, $red=False) { echo sprintf('

%s

', $headline); } function footer() { } function reenter_mail() { echo '
'; echo '
'; echo '
'; echo ''._('Sollten Sie keine E-Mail erhalten haben, können Sie sich einen neuen Aktivierungsschlüssel zuschicken lassen. Geben Sie dazu Ihre gewünschte E-Mail-Adresse unten an') . '' . CSRFProtection::tokenTag() .'' .'' .''; echo '
'; echo ''; echo '
'; } function mail_explain() { echo '
'; echo '
'; echo '' . _('Sie haben Ihre E-Mail-Adresse geändert. Um diese frei zu schalten müssen Sie den Ihnen an Ihre neue Adresse zugeschickten Aktivierungs Schlüssel im unten stehenden Eingabefeld eintragen.') . ''; echo CSRFProtection::tokenTag(); echo '
'; echo ''; echo '
'; } if(!Request::option('uid')) header("Location: index.php"); URLHelper::addLinkParam('cancel_login', 1); // set up user session include 'lib/seminar_open.php'; // display header PageLayout::setTitle(_('E-Mail Aktivierung')); $uid = Request::option('uid'); if(Request::get('key') !== null) { $db = DBManager::get(); $sth = $db->prepare("SELECT validation_key FROM auth_user_md5 WHERE user_id=?"); $sth->execute([$uid]); $result = $sth->fetch(); $key = $result['validation_key']; if(Request::get('key') == $key) { $sth = $db->prepare("UPDATE auth_user_md5 SET validation_key='' WHERE user_id=?"); $sth->execute([$uid]); unset($_SESSION['semi_logged_in']); head(PageLayout::getTitle()); PageLayout::postSuccess(_('Ihre E-Mail-Adresse wurde erfolgreich geändert.')); printf(' %s', _('Zum Login')); } else if ($key == '') { head(PageLayout::getTitle()); PageLayout::postInfo(_('Ihre E-Mail-Adresse ist bereits geändert.')); printf(' %s', _('Zum Login')); } else { if (Request::get('key')) { PageLayout::postError(_("Falscher Bestätigungscode.")); } head(PageLayout::getTitle()); mail_explain(); if($_SESSION['semi_logged_in'] == Request::option('uid')) { reenter_mail(); } else { printf(_('Sie können sich %seinloggen%s und sich den Bestätigungscode neu oder an eine andere E-Mail-Adresse schicken lassen.'), '', ''); } } // checking semi_logged_in is important to avoid abuse } else if(Request::get('email1') && Request::get('email2') && $_SESSION['semi_logged_in'] == Request::option('uid')) { if(Request::get('email1') == Request::get('email2')) { // change mail $tmp_user = User::find(Request::option('uid')); if($tmp_user && $tmp_user->changeEmail(Request::get('email1'), true)) { $_SESSION['semi_logged_in'] = False; } } else { PageLayout::postError(_('Die eingegebenen E-Mail-Adressen stimmen nicht überein. Bitte überprüfen Sie Ihre Eingabe.')); } mail_explain(); reenter_mail(); } else { // this never happens unless someone manipulates urls (or the presented link within the mail is broken) head(PageLayout::getTitle()); mail_explain(); reenter_mail(); } $template = $GLOBALS['template_factory']->open('layouts/base.php'); $template->content_for_layout = ob_get_clean(); echo $template->render(); page_close();