query("DELETE FROM jumi_securitytokens WHERE securitytoken ='$token_neu' AND identifier = '$identifier' "); } //Cookies entfernen session_destroy(); setcookie("identifier","",time()-(3600*24*365)); setcookie("securitytoken","",time()-(3600*24*365)); header("location:../dashboard/login.php"); } function random_string() { if(function_exists('random_bytes')) { $bytes = random_bytes(16); $str = bin2hex($bytes); } else if(function_exists('openssl_random_pseudo_bytes')) { $bytes = openssl_random_pseudo_bytes(16); $str = bin2hex($bytes); } else if(function_exists('mcrypt_create_iv')) { $bytes = mcrypt_create_iv(16, MCRYPT_DEV_URANDOM); $str = bin2hex($bytes); } else { //Bitte euer_geheim_string durch einen zufälligen String mit >12 Zeichen austauschen $str = md5(uniqid('#!af445bsvjke34vas', true)); } return $str; } //Automatischer Login #if ($function != 'login') { if ($function == '') { if(!isset($_SESSION['userid']) && isset($_COOKIE['identifier']) && isset($_COOKIE['securitytoken'])) { $identifier = $_COOKIE['identifier']; $securitytoken = $_COOKIE['securitytoken']; $result = $db->query("SELECT * FROM jumi_securitytokens WHERE identifier ='$identifier'"); $securitytoken_row = $result->fetch_array(); ## $statement = $pdo->prepare("SELECT * FROM jumi_securitytokens WHERE identifier = ?"); ## $result = $statement->execute(array($identifier)); ## $securitytoken_row = $statement->fetch(); if(sha1($securitytoken) !== $securitytoken_row['securitytoken']) { # die('Ein vermutlich gestohlener Security Token wurde identifiziert'); header("location:../dashboard/login.php"); } else { //Token war korrekt //Setze neuen Token $neuer_securitytoken = random_string(); # $insert = $pdo->prepare("UPDATE jumi_securitytokens SET securitytoken = :securitytoken WHERE identifier = :identifier"); # $insert->execute(array('securitytoken' => sha1($neuer_securitytoken), 'identifier' => $identifier)); $token_neu = sha1($neuer_securitytoken); $update = $db->query("UPDATE jumi_securitytokens SET securitytoken ='$token_neu' WHERE identifier = '$identifier' "); setcookie("identifier",$identifier,time()+(3600*24*365)); //1 Jahr Gültigkeit setcookie("securitytoken",$neuer_securitytoken,time()+(3600*24*365)); //1 Jahr Gültigkeit $_SESSION['angemeldet_bleiben'] = 1; //Logge den Benutzer ein $_SESSION['userid'] = $securitytoken_row['uid']; $redirect = $_SESSION['cur_page']; if($redirect != ''){ header("location:$redirect"); }else{ header("location:../dashboard/index.php"); } } }else{ if(!isset($_SESSION['userid'])){ header("location:../dashboard/login.php"); } } } if ($function == 'login') { $mail=mb_strtoupper($_POST["mail"]); //remove case sensitivity on the mail $password=$_POST["password"]; if($_POST["mail"] != ""){ $_SESSION["global_mail"]=$mail; } if($mail == "" OR $password == ""){ echo '
Bitte füllen Sie alle Felder aus!
|***|error'; exit; }else{ $result = $db->query("SELECT uid, mail, passwort, aktiv FROM jumi_admin WHERE UPPER(mail)='$mail'"); $row = $result->fetch_array(); if ($row['aktiv'] == '0'){ //verschlüsseltes Passwort überprüfen echo '
Ihr Benutzeraccount ist inaktiv.
|***|error'; exit; }else if (md5($password) != $row['passwort'] or $row['mail'] == ''){ //verschlüsseltes Passwort überprüfen echo '
Bitte prüfen Sie Ihre Zugangsdaten
|***|error'; exit; }else{ $uid = $row['uid']; //Möchte der Nutzer angemeldet beleiben? if($_POST['angemeldet_bleiben'] == 1) { $identifier = random_string(); $securitytoken = random_string(); # $insert = $pdo->prepare("INSERT INTO jumi_securitytokens (user_id, identifier, securitytoken) VALUES (:user_id, :identifier, :securitytoken)"); # $insert->execute(array('user_id' => $user['id'], 'identifier' => $identifier, 'securitytoken' => sha1($securitytoken))); $token_neu = sha1($securitytoken); $result_1 = $db->query("INSERT INTO jumi_securitytokens (uid, identifier, securitytoken) VALUES ('$uid', '$identifier', '$token_neu')"); setcookie("identifier",$identifier,time()+(3600*24*365)); //1 Jahr Gültigkeit setcookie("securitytoken",$securitytoken,time()+(3600*24*365)); //1 Jahr Gültigkeit $_SESSION['angemeldet_bleiben'] = 1; }else{ $_SESSION['angemeldet_bleiben'] = 0; } $datum=date("Y-m-d H:i:s"); $ip=getenv("REMOTE_ADDR"); $agent=getenv("HTTP_USER_AGENT"); $_SESSION['userid'] = $uid; $_SESSION["global_mail"] = $row['mail']; $result_1 = $db->query("INSERT INTO jumi_adminlog (Datum, IP, user_agent, uid) VALUES ('$datum', '$ip', '$agent', '$uid')"); echo '
Login wird durchgeführt
|***|success'; } } } if ($function == 'passwortvergessen') { $mail = $_POST['email']; $result_pw = $db->query("SELECT uid, aktiv, vorname, nachname, mail FROM jumi_admin WHERE UPPER(mail)=UPPER('$mail')"); $row_pw = $result_pw->fetch_array(); if(!isset($_POST['email']) || empty($_POST['email'])) { echo '
Bitte geben Sie eine E-Mail-Adresse ein.
|***|error'; exit; } elseif($row_pw['aktiv'] == '0') { echo '
Der Benutzer ist inaktiv. Melden Sie sich beim Administrator.
|***|error'; exit; }elseif ($row_pw['mail'] == ''){ echo '
Der Benutzer wurde nicht im System gefunden.
|***|error'; exit; }else{ $passwortcode = random_string(); $pwcode_sha1 = sha1($passwortcode); $uid = $row_pw['uid']; $vorname = $row_pw['vorname']; $nachname = $row_pw['nachname']; # Benutzer auf allen Geräten abmelden $sql1 = $db->query("DELETE FROM jumi_securitytokens WHERE uid = '$uid' "); # $sql1 = $db->query("UPDATE jumi_admin SET passwortcode = '$pwcode_sha1' , passwortcode_time = NOW() WHERE uid = '$uid' "); $empfaenger = "$mail"; $betreff = "Passwort vergessen - JU & MI Portal"; $url_passwortcode = 'http://admin.ju-and-mi.de/passwortzuruecksetzen.php?uid='.$row_pw['uid'].'&code='.$passwortcode; $text = " Passwort vergessen - JU & MI Portal Guten Tag $vorname $nachname!

für den Account im JU & MI Portal wurde ein neues Passwort angefordert.
Um ein neues Passwort zu vergeben, rufen Sie innerhalb der nächsten 24 Stunden die folgende Website auf:

$url_passwortcode

Sollte Ihnen das Passwort wieder eingefallen sein oder Sie diese nicht angefordert haben, ignorieren Sie bitte diese E-Mail. "; $result_absender = $db->query("SELECT wert FROM jumi_parameter WHERE pid = 1"); $row_absender = $result_absender->fetch_array(); if ($row_absender['wert'] == '') { $absender = 'info@ju-and-mi.de'; } else { $absender = $row_absender['wert']; } $headers = "MIME-Version: 1.0\n"; $headers .= "Content-type: text/html; charset=utf-8\n"; $headers .= "From: Info JU & MI <$absender>\n"; $return = @mail($empfaenger, $betreff, $text, $headers); if (!$return) { // Abfrage ob Mailversand funktioniert hat echo '
Es konnte keine Mail verschickt werden!
Wenden Sie sich an den Administrator.
|***|success'; exit; } else { echo '
Eine Mail wurde Ihnen zugestellt.
Checken Sie auch den Spam Ordner!
|***|success'; exit; } } } if ($function == 'resetpasswort') { $password_new1 = $_POST['password_new1']; $password_new2 = $_POST['password_new2']; $uid = $_POST['uid']; $code = $_POST['code']; $result = $db->query("SELECT uid, vorname, nachname, mail, aktiv, passwortcode, passwortcode_time FROM jumi_admin WHERE uid=$uid"); $row = $result->fetch_array(); #Fehlercheck if(!isset($uid) || !isset($code)) { echo '
Leider wurde beim Aufruf dieser Website kein Code zum Zurücksetzen des Passworts übermittelt!
|***|error'; exit; }elseif ($row === null || $row['passwortcode'] === null ) { echo '
Es wurde kein passender Benutzer gefunden!
|***|error'; exit; }elseif($row['aktiv'] == '0') { echo '
Der Benutzer ist inaktiv. Melden Sie sich beim Administrator.
|***|error'; exit; }elseif($row['passwortcode_time'] === null || strtotime($row['passwortcode_time']) < (time()-24*3600) ) { echo '
Der Code ist leider abgelaufen. Setzen Sie das Passwort erneut zurück!
|***|error'; exit; }elseif(sha1($code) != $row['passwortcode']) { echo '
Der übergebene Code war ungültig.
Stellen Sie sicher, dass Sie den genauen Link in der URL aufrufen.
|***|error'; exit; }elseif ($password_new1 != $password_new2) { echo '
Das neue Passwort stimmt nicht mit der Wiederholung überein!
|***|error'; exit; }elseif (strlen($password_new1) < 8) { echo '
Das neue Passwort muss mindestens 8 Zeichen haben!
|***|error'; exit; }else{ $password_md5 = md5($password_new1); $update = $db->query("UPDATE jumi_admin SET passwort ='$password_md5' ,passwortcode = NULL ,passwortcode_time = NULL WHERE uid=$uid "); if (!$update) { echo '
Es liegt ein Fehler in der Datenbank vor!
|***|error'; exit; }else{ echo '
Das Passwort wurde geändert!
|***|success'; exit; } } } ?>