steckl: Loginbereich

Beitrag lesen

Hi,

$mail = $_POST['mail'];
$passwort = $_POST['passwort'];

$sql = "SELECT * FROM users WHERE EMailAdresse LIKE CONVERT(_utf8 '$mail' USING latin1) COLLATE latin1_general_ci AND pw1 LIKE CONVERT(_utf8 '$passwort' USING latin1) COLLATE latin1_general_ci";

$result = mysql_query($sql) OR die(mysql_error());
$row = mysql_fetch_assoc($result);

if($row) {
//Hier muss etwas geincludet werden, oder eine automatische
//Weiterleitung gemacht werden (Siehe Frage unten)
} else {
die(include "falscherlogin.htm");
}
?>

Meine Fragen:

Ist das in etwa richtig?

Die Beschreibung zu mysql_fetch_assoc() sollte dir weiterhelfen, wie du auslesen kannst, welcher User sich angemeldet hat. Anschließend kannst du dementsprechend die Seite anzeigen lassen, die für registrierte User bestimmt ist.

Es wäre auch besser, wenn du das Passwort verschlüsselt in der Datenbank abspeichern würdest und dann vor dem Vergleich das eingegebene Passwort ebenfalls verschlüsseln würdest. Auch ist es wohl nicht nötig "select * ..." auszulesen, sondern es reicht, die Felder auszulesen, die du tatsächlich brauchst, um die Seite dann dementsprechend anzuzeigen.

Außerdem ist es nicht die "feine" Art, bei der Eingabe des falschen Passworts das Script gleich mit die() abzuwürgen. Es wäre in deinem Fall ausreichend, einfach nur die HTML-Datei zu includen, die angezeigt werden soll.

Was muss in den if Teil der if($row) ?

Unter Anderem der HTML-Quelltext, der angezeigt werden soll, wenn sich ein User korrekt einloggt.

mfG,
steckl