Moin!
Ich hab ein Login und habe das Problem, dass ich IMMER in die else-Schleife reinkomme, d.h. dass ich mich nicht einloggen kann. Kann jemand mal schauen, wo der Fehler liegt? Vielleicht ist ja n Denkfehler drin... ich find nix :-(
<?php
session_start();
session_register("benutzername");
?>
<?php
include ("connect.php"); //verbindung zur db
$abfrage = "SELECT * FROM login WHERE benutzername='$benutzername' AND pass='$pass'";
$ergebnis = mysql_query($abfrage);
if (mysql_num_rows($ergebnis)==1)
Du landest im ELSE-Teil, wenn diese Bedingung nicht erfüllt wird.
Wie kann sowas passieren?
1. Es werden mehr als 1 passender Eintrag in der Datenbank gefunden. Wäre nicht gut, müßte gesondert behandelt werden (Nachricht an Admin wäre ganz gut), und darf auf keinen Fall zu einem Login führen. Also OK.
2. Es wird kein passender Eintrag gefunden. Klar, daß man dann nicht einloggen darf.
3. Die MySQL-Abfrage vorher läuft irgendwie schief (aber nicht so schief, daß es Fehlermeldungen gibt). Dann klappts hier auch nicht, weil nichts gefunden wird.
{ $wert = mysql_fetch_array($ergebnis);
$id = $wert[0];
$level=$wert[3];
session_register("id","level");
header ("Location: site_profil.php"); //diese seite soll aufgerufen werden, wenn das Login erfolgreich war
} else {
echo "Login fehlgeschlagen!";}
?>
Mein Tipp: Lass dir testweise mal das Ergebnis der SQL-Abfrage ausgeben, dann siehst du, was die Datenbank so sagt, und erkennst sicherlich auch den Fehler. Alternativ läßt du dir den SQL-String mal mit echo ausgeben, dann siehst du, was du _wirklich_ von der Datenbank wissen willst. Wenn das nicht das ist, was du denkst, hast
du schon eine Fehlerquelle gefunden.
- Sven Rautenberg