kEv*: nach Login gültigen Account prüfen

Beitrag lesen

Hallo liebe SELFHTMLer,

ich habe das Loginscript welches hier unter SELFHTML angeboten wird an meine
Anwendung etwas angepasst und stehe nun etwas auf dem Schlauch.

Vorerst der Code:

  
...  
  
$sql = mysql_query("SELECT * FROM user WHERE username = '".mysql_real_escape_string($_POST['username'])."' AND password = '".md5(mysql_real_escape_string($_POST['password']))."' ");  
 $res = mysql_num_rows($sql);  
 if ($res == 1){  
  $data = mysql_fetch_object($sql);  
     # Benutzerinformationen in der Session speichern  
  $_SESSION['loggedin'] = true;  
  $_SESSION['uid'] = $data->uid;  
  $_SESSION['username'] = $data->username;  
  $_SESSION['levelid'] = $data->levelid;  
  $_SESSION['sessionid'] = session_id();  
  $now = date('Y-m-d H:i:s', time());  
  
  # Abfragen auf gültigen Account  
  $sql = mysql_query("SELECT expire, accountstatus FROM user WHERE uid = '" . $_SESSION['uid'] . "' LIMIT 1");  
  $res = mysql_fetch_object($sql);  
  
  if ($res->expire > $now){  
   $error = true;  
   $errormsg = "Dein Account ist abgelaufen!";  
  }  
  elseif($res->accountstatus == 1){  
   $error = true;  
   $errormsg = "Dein Account ist nicht freigeschaltet!";  
  }  
  elseif($res->accountstatus == 2){  
   $error = true;  
   $errormsg = "Dein Account ist gesperrt!";  
  }  
  
  
  # div. Daten in user Tabelle aktualisieren  
  mysql_query('UPDATE user SET sessionid = "' . session_id() . '", lastlogin = NOW() WHERE uid = "' . $_SESSION['uid'] . '" LIMIT 1');  
  
  # Server Protocol prüfen  
  if ($_SERVER['SERVER_PROTOCOL'] == 'HTTP/1.1'){  
   if (php_sapi_name() == 'cgi'){  
    header('Status: 303 See Other');  
    }  
   else{  
    header('HTTP/1.1 303 See Other');  
   }  
  }  
  #Weiterleitung zum internen Bereich  
  header('Location: http://'.$hostname.($path == '/' ? '' : $path).'/index.php?sid='.$_SESSION['sessionid']);  
  disconnect();  
  exit;  
 }  
 # fehlerhafter Login  
 # ggf. Errorhandling  
 else{  
  $error = true;  
  $errormsg = "Benutzername und/oder Passwort fehlerhaft!";  
 }  

Mein derzeitiges Problem liegt in der if elseif Abfrage. Ich möchte gern nach erfolgreichem Login noch prüfen ob von dem User der Account gesperrt ODER nicht freigegeben ODER abgelaufen ist und ggf. eine Meldung dazu ausgeben. Natürlich soll sich der User nicht einloggen können wenn eine der 3 Bedingungen erfüllt ist und wieder auf der Login.php landen. mit eben entsprechender Meldung.

Mit einem exit; wird das Script verlassen aber die Seite bleibt leider weiß.

Warum und wie könnte ich mein oben beschriebenes Problem lösen?

LG
kev1n

--

SELFCODE:
sh:( fo:| ch:? rl:° br:^ ie:{ mo:| va:) de:] zu:) ss:| ls:[ js:|
---