Hallo,
Da unser eigentliche Coder immoment keine Zeit hat habe ich mich dran versucht.
Gibt man Username und Passwort korrekt an leitet er ohne Probleme weiter. Lässt man aber das PW frei so sagt er Passwort falsch obwohl er dort garnicht mehr nach Passwort prüfen soll.
Das Script hat mehrere if abfragen die alles Prüfen sollen.
Passwort übergeben, wen nicht prüfen ob name in der db, wen nja fehlermeldung wenn nein session setzen
passwort und name übergeben prüfen auf richtigkeit etc
Erklärungen kann man den Kommentaren entnehmen.
Wenn kein Passwort angebenen ist sollte er den else teil in zeile 46 nutzen und nicht den in zeile 41?
Ich kann mir vorstellen das dort einiges nicht stimmt und hoffe ihr weist mir den richtigen Weg
Alles anzeigen
Da unser eigentliche Coder immoment keine Zeit hat habe ich mich dran versucht.
Gibt man Username und Passwort korrekt an leitet er ohne Probleme weiter. Lässt man aber das PW frei so sagt er Passwort falsch obwohl er dort garnicht mehr nach Passwort prüfen soll.
Das Script hat mehrere if abfragen die alles Prüfen sollen.
Passwort übergeben, wen nicht prüfen ob name in der db, wen nja fehlermeldung wenn nein session setzen
passwort und name übergeben prüfen auf richtigkeit etc
Erklärungen kann man den Kommentaren entnehmen.
Wenn kein Passwort angebenen ist sollte er den else teil in zeile 46 nutzen und nicht den in zeile 41?
Ich kann mir vorstellen das dort einiges nicht stimmt und hoffe ihr weist mir den richtigen Weg
Quellcode
- // Prüfen ob eingeloggt
- if ( $User->login_status() == true )
- {
- // Login OK, Weiterleite an Chat
- $_SESSION['user_nickname'] = $User->get_user_value('user_nickname');
- $_SESSION['user_id'] = $User->get_user_value('user_id');
- $Core->redirect("index.php?mode=chat");
- }
- else
- {
- // Loginvorgang wird ausgeführt
- if ( $Core->get(POST, 'login_send', true) )
- {
- $username = $User->clean_username($Core->get(POST, 'username'));
- $password = trim(htmlspecialchars($Core->get(POST, 'password')));
- // Userdaten aus der Datenbank laden
- $DB->set_sql('SELECT * FROM ' . USERS . ' WHERE `user_nickname`=:1');
- $DB->execute($username);
- $user_row = $DB->fetch_assoc();
- $DB->free();
- // Passwort übergeben?
- if (empty($password))
- {
- $pass_crypt = $User->password_hash($password . $user_row['user_salt'], ($user_row['user_old_pw'] == 1)? true : false);
- // Userdaten aus der Datenbank laden
- $DB->set_sql('SELECT * FROM ' . USERS . ' WHERE `user_nickname`=:1 AND user_password =:2');
- $DB->execute($username,$pass_crypt);
- $row = $DB->fetch_assoc();
- $DB->free();
- // Stimmen die Daten, weiterleiten an Chat
- if($row !== false)
- {
- // Login OK, Weiterleite an Chat
- $_SESSION['user_nickname'] = $row['user_nickname'];
- $_SESSION['user_id'] = $row['user_id'];
- $Core->redirect("index.php?mode=chat");
- }
- else
- {
- // Passwort Falsch
- echo 'Falsches PW';
- }
- }
- else
- {
- // else Teil der Passwort übergabe
- // Wenn kein Passwort übergeben wurde hier prüfen
- // Ob nickname bereits in der DB
- if(!$user_row !== false)
- {
- echo 'Nickname belegt';
- }
- else
- {
- // Nickname nicht in der DB dann weiterleiten
- $_SESSION['user_nickname'] = $Core->get(POST, 'username');
- $_SESSION['user_id'] = 1;
- $Core->redirect("index.php?mode=chat");
- }
- }
- }
- else
- {
- $Smarty->assign(array(
- 'LANG' => $lang,
- 'SITENAME' => $Core->get_config('page_title') . ' • ' . $lang['LOGIN'],
- ));
- $this->display('chat_login.htm');
- }
- }