Seite 1 von 1

[erledigt]login funktioniert fehlerhaft

Verfasst: 23.02.2007 19:13
von Ambience
Hallo, ich hab gerade versucht mir so halbwegs ein übergangs login zu schreiben, aber das will irgendwie nicht. (hierbei handelt es sich um teile des logins vom phpBB ist aber nicht für ein phpBB vorgesehen)

Wenn sich beim ersten mal korrekt einloggt, funktioniert es...
Wenn man sich 3 mal falsch einloggt wird man für 5 Minuten gesperrt..
Wenn man sich innerhalb dieser Zeit einloggt, funktioniert es logischerweise nicht. Aber wenn die Zeit abgelaufen ist, und man versucht sich einzuloggen(auch korrektes passwort) dann wird die Zeit von 0 auf 59:59 Minuten erhöht und man kann sich wieder nicht einloggen.

Ich find diesen Fehler allerdings schon seit knapp 2 Stunden nicht.

@Mods, es tut mir Leid das ich hier den Code posten muss (er ist stark verkürzt), da ich absolut kein Zugang zu irgendeinem Space habe und kann die Datei nicht hochladen. (Bitte mich deswegen nicht gleich wieder den Knigge bestätigen lassen).

Code: Alles auswählen

if (isset($HTTP_POST_VARS['login']) || isset($HTTP_GET_VARS['login']) || isset($HTTP_POST_VARS['logout']) || isset($HTTP_GET_VARS['logout']))
{
  // $username und $password(hier ist eine if - wurde verkürzt)
  
  $sql = 'SELECT user_id, username, user_password, user_login_tries, user_last_login_try
    FROM ' . USERS_TABLE . '
      WHERE username = "' . $username . '"';
  $result = $db->sql_query($sql);
  
  if ($row = $db->sql_fetchrow($result))
  {
    $max_login_attempts = 3;
    $login_reset_time = 50;
    
    // If the last login is long ago, then reset user_login_tries and user_last_login_try
    if ($row['user_last_login_try'] < (time() - ($login_reset_time * 60)))
    {
      $sql = 'UPDATE ' . USERS_TABLE . '
        SET user_login_tries = 0, user_last_login_try = 0
          WHERE user_id = ' . $row['user_id'];
      $db->sql_query($sql);
    }
    // Check if user are allowed to login or if his login_tries are exceeded
    if ($row['user_login_tries'] >= $max_login_attempts)
    {
         // fehlermeldung mit 3 mal falsch eingeloggt
    }
    else
    {
    
      if (md5($password) === $row['user_password'])
      {
        // blabla session begin
      
        // Reset login tries
        $sql = 'UPDATE ' . USERS_TABLE . '
          SET user_login_tries = 0, user_last_login_try = 0
            WHERE user_id = ' . $row['user_id'];
        $db->sql_query($sql);
          
        die('eingelogt');
      }
      else
      {
        // fehlermeldung passwort falsch
        
        // Only store a failed login attempt
        if ($row['user_id'] != ANONYM)
        {
          $sql = 'UPDATE ' . USERS_TABLE . '
            SET user_login_tries = user_login_tries + 1, user_last_login_try = ' . time() . '
              WHERE user_id = ' . $row['user_id'];
          $db->sql_query($sql);
        }
      }
    }
  }
  else
  {
        // fehlermeldung das benutzer bzw. passwort falsch ist
  }
}
else
{  
  $template->assign_var('S_LOGIN_ACTION', 'login.' . $phpEx);
}

Re: login funktioniert fehlerhaft

Verfasst: 23.02.2007 21:58
von easygo
Ambience hat geschrieben:Wenn man sich 3 mal falsch einloggt wird man für 5 Minuten gesperrt..

Code: Alles auswählen

    $login_reset_time = 50;
    
    // If the last login is long ago, then reset user_login_tries and user_last_login_try
    if ($row['user_last_login_try'] < (time() - ($login_reset_time * 60)))
Wieviel ist nochmal 50 * 60 ?

Btw bist du ja schon ne coole Socke, find ich. :D

Verfasst: 23.02.2007 22:28
von Ambience
XD versteh ich jetzt nicht.. eigentlich sollten dabei 50 sekunden rauskommen.

Du weißt nicht was 50 * 60 sind? :roll:
Btw bist du ja schon ne coole Socke, find ich. :D
Was soll das denn heißen? - Wüsste nicht das ich einen unangenehmen Geruch hätte :D

Verfasst: 23.02.2007 22:39
von easygo
Ambience hat geschrieben:XD versteh ich jetzt nicht.. eigentlich sollten dabei 50 sekunden rauskommen.
Jo dann träum mal schön weiter, Söckje. :P

Verfasst: 23.02.2007 22:56
von Ambience
:D Auf jedenfall bedank ich mich bei dir.. Bin schon ewig auf der Suche nach diesem Fehler gewesen.

Nimm das Söckje zurück - *scnr* LOL

Verfasst: 23.02.2007 23:06
von easygo
rofl keine Ursache! Her mit dem Beweisfoto *grabsch* :wink:

Btw: Was hasten gegen Söckje? Ist doch niedlich :/ easy

Verfasst: 23.02.2007 23:09
von Ambience
Ich hab nüx dagegen... find das eigentlich ganz Lustig... mal gucken ob ich irgendwo ein neues Avatar passt und ein Admin mein account umbennt.