holeDaten($query); $loginok = false; if($_db->holeAnzahl() == 1){ $row = $_db->holeZeile(); $pw_form = text_format($_POST['loginpasswort'],'nichts'); #if(!is_null($row['salz'])){ # $pw_form = $row['salz'].$pw_form; #} if(md5($pw_form) == $row['passwort']){ $loginok = true; # altes Passwort in gesalzener Form speichern #if(is_null($row['salz'])){ #} } } if($loginok){ # User gefunden, Daten in $_SESSION schreiben #$row = $_db->holeZeile(); $_SESSION['user']['name'] = $row['anmeldename']; $_SESSION['user']['realname'] = $row['realname']; $_SESSION['user']['letzterzugriff'] = time(); $_SESSION['user']['id'] = $row['id']; # homeverzeichnis speichern und vorher ggf. neue erzeugen if(is_null($row['homeverzeichnisid'])){ $query = "INSERT INTO ".DB_PREFIX."verzeichnisse (userid, rechte, name, parentid) VALUES (".$row['id'].", 'rwx------', '".$row['anmeldename']."', 1)"; # 1 ist das Verzeichnis "home" $_db->fuehreQueryAus($query); $_SESSION['user']['homeverzeichnis'] = $_db->ergebnis['insertid']; $query = "UPDATE ".DB_PREFIX."mitglieder SET homeverzeichnisid = ".$_db->ergebnis['insertid']." WHERE id = ".$row['id'].""; $_db->fuehreQueryAus($query); } else{ $_SESSION['user']['homeverzeichnis'] = $row['homeverzeichnisid']; } # weitere Session-Werte anlegen $_SESSION['eingelogt'] = 1; $_SESSION['flags'] = array(); $_SESSION['suche'] = array( 'einst' => array('einstspeichern' => 1), 'formular' => 'einfach' ); # Rechte und Rechtegruppen des Users holen $query = "SELECT rgr.rechteid as id FROM ".DB_PREFIX."rechtegruppen_rechte as rgr, ".DB_PREFIX."rechtegruppen_mitglieder as rgm WHERE rgm.mitgliedid = ".$_SESSION['user']['id']." AND rgm.rechtegrid = rgr.rechtegrid GROUP BY id"; $_db->holeDaten($query); $_SESSION['user']['rechte'] = $_db->baueArray('id','#'); $query = "SELECT rechtegrid as id FROM ".DB_PREFIX."rechtegruppen_mitglieder WHERE mitgliedid = ".$_SESSION['user']['id'].""; $_db->holeDaten($query); $_SESSION['user']['rechtegruppen'] = $_db->baueArray('id','#'); if(file_exists(PFAD_INIDATEIEN.'userconf_'.$_SESSION['user']['id'].'.ini')){ $_einst = parse_ini_file(PFAD_INIDATEIEN.'userconf_'.$_SESSION['user']['id'].'.ini',true); if($_einst['globaleeinstellungen']['sicherheitsabfragenabschalten']){ $_SESSION['hinweis'] = 'Achtung, die Sicherheitsabfragen vor Löschaktionen sind deaktiviert!'; } } # Darstellungsoptionen speichern $_SESSION['darstellung'] = array( 'hintergrund' => file_exists(PFAD_HTTP.'src/img/hintergrund.png'), 'favicon' => file_exists(PFAD_HTTP.'src/img/favicon.ico') ); # nachschauen ob abzuwickelnde Wettkämpfe da sind $query = "SELECT artid FROM ".DB_PREFIX."eigenschaften WHERE art = 'w' AND eigenschaft = 'wkabwickeln'"; $_db->holeDaten($query); $_SESSION['flags']['abzuwickelndewettkaempfe'] = $_db->holeAnzahl()<1?false:true; # Zielseite ermitteln $vonseite = isset($_SESSION['vonseite'])?$_SESSION['vonseite']:'/'; # erfolgreichen Versuch loggen (wenn vorher fehlgeschlagene Versuche da waren) if(isset($_SESSION['versuche'])){ $daten = 'Name: '.$_POST['loginanmeldename'].', IP: '.$_SERVER['REMOTE_ADDR'].', UA: '.$_SERVER['HTTP_USER_AGENT']; $daten = preg_replace("/((\015\012)|(\015)|(\012))+/",' ',$daten); trigger_error('[login] erfolgreicher Login|'.$daten, E_USER_NOTICE); } # aufraeumen if(isset($_SESSION['versuche'])){ unset($_SESSION['versuche']); } unset($_SESSION['vonseite']); if(isset($_SESSION['fehler'])){ unset($_SESSION['fehler']); } # und ab zur Herkunftsseite weiterleiten($vonseite); } else{ # fehlgeschlagenen Versuch loggen $daten = 'Name: '.$_POST['loginanmeldename'].', IP: '.$_SERVER['REMOTE_ADDR'].', UA: '.$_SERVER['HTTP_USER_AGENT']; $daten = preg_replace("/((\015\012)|(\015)|(\012))+/",' ',$daten); trigger_error('[login] fehlgeschlagener Login|'.$daten, E_USER_WARNING); if(!isset($_SESSION['versuche'])){ $_SESSION['versuche'] = 1; } else{ $_SESSION['versuche']++; } # warten und dann Fehlermeldung zuweisen if($_SESSION['versuche'] <= 2){ sleep(0.2); } elseif($_SESSION['versuche'] <= 10){ sleep(1); } else{ sleep(10); } $_SESSION['fehler'] = 'falsche Daten'; } } } # EOF ?>