Aktivierung

  • Themenstarter Themenstarter Sweetiegeraet
  • Beginndatum Beginndatum
Hmm wenn ich das an die Stelle mache, dann kann man sich gar nicht mehr einloggen :-(
 
Wie genau sieht das Script denn jetzt aus?
Ich find das Script ist fuer ein Login-Script sowieso irgendwie viel zu ueberladen, ich denke das alles kann man auch einfacher regeln.
 
Hallo,

das ganze sieht nun so aus:

PHP:
//Verbindung herstellen und Datenbank auswählen
@mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS) OR die("Bei dem Verbindungsaufbau mit der Datenbank ist ein Fehler aufgetreten.<br>MySQL hat folgende Fehlermeldung ausgegeben: <tt>".mysql_error()."</tt><br>Bitte probieren Sie es später noch einmal.");
mysql_select_db(MYSQL_DATABASE) OR die("Die Verbindung mit der Datenbank konnte zwar hergestellt werden, jedoch gab es Probleme beim Auswählen der Datenbank.<br>MySQL hat folgende Fehlermeldung ausgegeben: <tt>".mysql_error()."</tt><br>Bitte Probieren Sie es später noch einmal.");

//Fehlerarray definieren
$error = array();

if(isset($_POST['login']) AND ($_POST['benutzername']) AND ($_POST['passwort']))
{
	//Daten zu dem Benutzer aus der Datenbank holen
	$sql = "SELECT
				*
			FROM
				userdata
			WHERE
				benutzername = '".strtolower(addslashes($_POST['benutzername']))."'
			";
	$result = mysql_query($sql);
	$_data = mysql_fetch_assoc($result);
	
	//Überprüfen, ob Benutzername existiert
	if(empty($_data))
	{
		$error = "Der Benutzername existiert nicht.";
	}
	else
	{
		if($_data['falschlogin'] > 5)
		{
			$sql = "UPDATE
						userdata
					SET
						falschlogin = '0',
						gesperrt = '1'
					WHERE
						benutzername = '".$_data['benutzername']."'
					";
			$return = mysql_query($sql);
			$error = "Sie haben sich mehr als 5&nbsp;mal falsch eingeloggt. Ihr Benutzerkonto ist nun aus Sicherheitsgründen gesperrt, bitte wenden Sie sich an einen Administrator.";
		}
		elseif($_data['gesperrt'])
		{
			$error = "Ihr Benutzerkonto ist gesperrt, bitte wenden Sie sich an einen Administrator.";
		}
		//Passwort überprüfen
		elseif($_data['passwort'] === md5($_POST['passwort']))
		{
			$sql = "UPDATE
						userdata
					SET
						lastlogin = NOW(),
						lastid = '".addslashes($_SERVER['REMOTE_ADDR'])."',
						falschlogin = '0'
					WHERE
						benutzername = '".addslashes($_data['benutzername'])."'
					";
			$result = mysql_query($sql);
			if(!$result) die(mysql_error());
			$sql = "REPLACE INTO user_online
					(
						benutzername,
						lastmove
					)
					VALUES
					(
						'".addslashes($_data['benutzername'])."',
						'".time()."'
					)
					";
			mysql_query($sql) or die(mysql_error());
			// Login zählen
 				$sql = "UPDATE  
 						userdata
				
				SET
 				 zaehler = zaehler + 1
				
				WHERE
				  benutzername = '".addslashes($_data['benutzername'])."'
					";
						$result = mysql_query($sql);
						if(!$result) die(mysql_error());
			//und Benutzerdaten in Session schreiben
			foreach($_data as $key => $value)
			{
				if($key == "id" || $key == "passwort") continue;
				if(empty($value)) $_SESSION[$key] = false;
				$_SESSION[$key] = $_data[$key];
			}
			//Login Daten festlegen:
			$_SESSION['login'] = time();
$sql = "DELETE FROM  guests_online WHERE guest_ip = '".$_SERVER["REMOTE_ADDR"]."'"; 
mysql_query($sql) OR die(mysql_error());			
header("Location: communiX.php".SID);
		}
		else
		{
			$sql = "UPDATE
						userdata
					SET
						falschlogin = '". ++$_data['falschlogin'] ."'
					WHERE
						benutzername = '". $_data['benutzername'] . "'
					";
			$return = mysql_query($sql);
			$error = "Falsches Passwort.";
		}
	}
}

?>
 
Sorry aber jetzt:

PHP:
//Verbindung herstellen und Datenbank auswählen
@mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS) OR die("Bei dem Verbindungsaufbau mit der Datenbank ist ein Fehler aufgetreten.<br>MySQL hat folgende Fehlermeldung ausgegeben: <tt>".mysql_error()."</tt><br>Bitte probieren Sie es später noch einmal.");
mysql_select_db(MYSQL_DATABASE) OR die("Die Verbindung mit der Datenbank konnte zwar hergestellt werden, jedoch gab es Probleme beim Auswählen der Datenbank.<br>MySQL hat folgende Fehlermeldung ausgegeben: <tt>".mysql_error()."</tt><br>Bitte Probieren Sie es später noch einmal.");

//Fehlerarray definieren
$error = array();

if(isset($_POST['login']) AND ($_POST['benutzername']) AND ($_POST['passwort']))
{
	//Daten zu dem Benutzer aus der Datenbank holen
	$sql = "SELECT
				*
			FROM
				userdata
			WHERE
				benutzername = '".strtolower(addslashes($_POST['benutzername']))."'
			";
	$result = mysql_query($sql);
	$_data = mysql_fetch_assoc($result);
	
	//Überprüfen, ob Benutzername existiert
	if(empty($_data))
	{
		$error = "Der Benutzername existiert nicht.";
	}
	else
	{
		if($_data['falschlogin'] > 5)
		{
			$sql = "UPDATE
						userdata
					SET
						falschlogin = '0',
						gesperrt = '1'
					WHERE
						benutzername = '".$_data['benutzername']."'
					";
			$return = mysql_query($sql);
			$error = "Sie haben sich mehr als 5&nbsp;mal falsch eingeloggt. Ihr Benutzerkonto ist nun aus Sicherheitsgründen gesperrt, bitte wenden Sie sich an einen Administrator.";
		}
		elseif($_data['gesperrt'])
		{
			$error = "Ihr Benutzerkonto ist gesperrt, bitte wenden Sie sich an einen Administrator.";
		}
		//Passwort überprüfen
		elseif($_data['passwort'] === md5($_POST['passwort']))
		{
			$sql = "UPDATE
						userdata
					SET
						lastlogin = NOW(),
						lastid = '".addslashes($_SERVER['REMOTE_ADDR'])."',
						falschlogin = '0'
					WHERE
						benutzername = '".addslashes($_data['benutzername'])."'
					";
			$result = mysql_query($sql);
			if(!$result) die(mysql_error());
			$sql = "REPLACE INTO user_online
					(
						benutzername,
						lastmove
					)
					VALUES
					(
						'".addslashes($_data['benutzername'])."',
						'".time()."'
					)
					";
			mysql_query($sql) or die(mysql_error());
			// Login zählen
 				$sql = "UPDATE  
 						userdata
				
				SET
 				 zaehler = zaehler + 1
				
				WHERE
				  benutzername = '".addslashes($_data['benutzername'])."'
					";
						$result = mysql_query($sql);
						if(!$result) die(mysql_error());
			//und Benutzerdaten in Session schreiben
if ($_data["Aktiviert"]=="y") 
{ 
foreach($_data as $key => $value) 
            { 
                if($key == "id" || $key == "passwort") continue; 
                if(empty($value)) $_SESSION[$key] = false; 
                $_SESSION[$key] = $_data[$key]; 
            } 
} 
			//Login Daten festlegen:
			$_SESSION['login'] = time();
$sql = "DELETE FROM  guests_online WHERE guest_ip = '".$_SERVER["REMOTE_ADDR"]."'"; 
mysql_query($sql) OR die(mysql_error());			
header("Location: communiX.php".SID);
		}
		else
		{
			$sql = "UPDATE
						userdata
					SET
						falschlogin = '". ++$_data['falschlogin'] ."'
					WHERE
						benutzername = '". $_data['benutzername'] . "'
					";
			$return = mysql_query($sql);
			$error = "Falsches Passwort.";
		}
	}
}

?>
 
Kommt denn eine Fehlermeldung oder kann man sich einfach nur nicht einloggen?
Schonmal geschaut ob der Benutzer mit dem Du Dich einloggen willst denn "Aktiviert" auf 1 stehen hat?
 
Zurück