Anmeldung

Eine Datenbank lebt von Ihren Inhalten. Diese müssen dann und wann auch aktualisiert werden. Da dies nicht unbedingt jeder machen soll, muß man sich ein Verfahren überlegen, mit welchem die "Spreu vom Weizen", also einfache User von den Administratoren getrennt werden.

Ein einfaches Verfahren ist es die User mit Passwort und Berechtigungsstufen in der PHP Datei zu pflegen, die die Anmeldung und entsprechende auswertungen vornimmt. Nachteil: die Benutzer können nichst selbst Ihr Passwort pflegen. An dieser Stelle benötigt man eine Tabelle in der Datenbank, die man entsprechend "ansteuern" kann.

Die Anmeldung geschieht mit einer Funktion, die die in der Datei hinterlegte (oder in einer anderen Datei, die gegen Zugriff geschützt ist) AnmeldeDaten vergleicht. Ist das Ergebnis korrekt, wird eine SessionID berechnet. Diese ist md5 verschlüsselt und auch bei bekannten Variablen nicht wiederherstellbar. Die IP Adresse sowie ein Zufallswert werden addiert und bilden diese SID. Die SID wird in der Datenbank zum Account abgelegt und bei jeder geschützten Operation mitgegebne bzw. gegen die DB verglichen. Bei der Anmeldung wird auch die Zeit der Anmeldung mit in der Datenbank gespeichtert. Sind 1600 Sekunden verstrichen ist die Sitzung nicht mehr gültig - man muß sich neu anmelden.

function anmelden($account,$pwd)
{ GLOBAL $db, $Datenbank,$Login,$AdminAccount,$AdminPWD,$sessionid, $REMOTE_ADDR;
$Acc = "false";
$Pwd = "false";

if(!isset($account))
{ $errAccount = "Account bitte angeben"; }
else
{ if ($account == $AdminAccount)
{ $Acc = "true"; }
else
{ $errAccount = "Falscher Account"; }
}
if(!isset($pwd))
{ $errAccount = "Passwort bitte angeben"; }
else
{ if ($pwd == $AdminPWD)
{ $Pwd = "true"; }
else
{ $errPwd = "Flasches Kennwort"; }
}

if (($Pwd == "true") && ($Acc == "true"))
{ $Login= "true";
if (!$sessionid)
{ DeloldSID(); # Funktion - übernimmt das Löschen verfallener Einträge
# SessionID erzeugen $sessionid = md5(str_replace(".","",$REMOTE_ADDR) + mt_rand(100000,999999));
# Bis wann soll die Sitzung gültig sein $zeitmaxaktiv = time() + 1600 ;
$zeitmaxaktiv = strftime("%Y-%m-%d %H:%M:%S",$zeitmaxaktiv);
# MaxDSNummer bestimmt letzten Eintrag in der Datenbank $Nr = MaxDSNummer($Datenbank,"tempadmin") + 1;
# Tabelle sprerren wg. Schreiboperation $sqll = "Lock Tables tempadmin WRITE";
$resl = mysqli_query($sqll);
# SQL Befehl erzeugen $sql2 = "INSERT INTO tempadmin (Nummer, User, SID, Zeit) ";
$sql2 .= "VALUES (";
$sql2 .= "'".$Nr."',";
$sql2 .= "'".$AdminAcc."',";
$sql2 .= "'".$sessionid."',";
$sql2 .= "'".$zeitmaxaktiv."')";
$result2 = mysqli_query($sql2);
# Tabellensperrung aufheben $sqll = "Unlock Tables";
$resl = mysqli_query($sqll,$db);
}
}
else
{ $Login= "false";
$err = "Fehler: <br>" . $errAccount . "<br>" . $errPwd ; }
return $err;
}

Verwendungshinweis: Um das Script zu verwenden einfach diese Datei über den Browser speichern und dann mit einem Texteditor oder Dreamweaver / FirstPage etc. bearbeiten. Das Script darf für jeden frei verwendet werden, soweit der Autor / Quelle genannt wird. Wer nützliche Links / Scripte hat darf die mir auch gerne zur Verfügung stellen..

   
Home | Autor | eMail | Gästebuch

Bearbeitet und erstellt von Horst - G. Burmester (HGB) ©