Dennis Wronka
Soulcollector
Beim Passwort frag ich mich immer: Warum beim Login ueberhaupt an die Datenbank uebergeben?
Am Anfang gibt der User seinen Usernamen und sein Passwort ein, und wenn alles okay ist soll am Ende die UserID in die Session geschreiben werden.
Um an die UserID zu kommen muss ich doch eh die User-Daten aus der Datenbank holen, dementsprechend kann man es sich doch sparen das Passwort an diese zu uebermitteln.
So ungefaehr sieht mein Login aus:
Nicht ganz so, aber ungefaehr.
quote_string() ist uebrigens eine selbst zusammengestrickte Funktion die ungefaehr Beispiel 3 bei mysql_real_escape_string() in der PHP-Doku.
Wie Dr Dau schon sagt, LIKE hat bei einem Login absolut nichts verloren.
Am Anfang gibt der User seinen Usernamen und sein Passwort ein, und wenn alles okay ist soll am Ende die UserID in die Session geschreiben werden.
Um an die UserID zu kommen muss ich doch eh die User-Daten aus der Datenbank holen, dementsprechend kann man es sich doch sparen das Passwort an diese zu uebermitteln.
So ungefaehr sieht mein Login aus:
PHP:
$users=mysql_query("select * from `users` where `username`='".quote_string($_POST['username'])."'");
$user=mysql_fetch_assoc($users);
$passwordhash=sha1($_POST['password']);
if ((!empty($user)) && ($passwordhash==$user['password']))
{
$_SESSION['id']=$user['id'];
}
quote_string() ist uebrigens eine selbst zusammengestrickte Funktion die ungefaehr Beispiel 3 bei mysql_real_escape_string() in der PHP-Doku.
Nicht zu erwarten? User die ueberhaupt ansatzweise auch nur auf die Idee kommen gehoeren oeffentlich gesteinigt.Dr Dau hat gesagt.:da aber bei einem Login nicht zu erwarten ist dass der User nur einen Teil seines Usernamens und/oder Passworts eingibt, kannst Du getrost auf LIKE verzichten.
Wie Dr Dau schon sagt, LIKE hat bei einem Login absolut nichts verloren.