Re: Login-Daten eines Scriptes vergleichen
> In der Auswertung prüfst Du dann if(!$result) ->hier hast Du also keinen
> Datensatz gefunden - entsprechende Fehlermeldung an den Benutzer ausgeben
> oder eine entsprechende Routine aufrufen.
> andernfalls hast Du den Benutzer gefunden, jetzt kannst Du (wenn Deine
> Berechtigungsspalte 'rechte' heißt) dann mit
>
> $query = "SELECT id, rechte FROM $dbt WHERE name='$name' AND
pass='$pass'";
> $res = mysql_query($query, $db);
> $ret = mysql_fetch_row($res);
> $userid = $ret[0];
> $recht = $ret[1];
Hmm... irgendwas hab ich wohl falsch gemacht! Hier mein Code:
<snip>
$query = "SELECT allow_gb,allow_news,allow_files FROM $dbt WHERE
name='$name' AND pass='$pass'";
$res = mysql_query($query, $db); $ret = mysql_fetch_array($res);
if (!$res)
{
session_register("user");
$user = array("auth" => true,
"name" => $name,
"allow_gb" => $ret["allow_gb"],
"allow_news" => $ret["allow_news"],
"allow_files" => $ret["allow_files"]);
header("Location:
http://".getenv("SERVER_NAME")."/site/scripts/login/admin.php");
exit;
}
else { $err="Sie haben entweder einen ungültigen User-Name verwendet oder
das Passwort ist falsch";
session_destroy(); }
</snip>
Wie du siehst hab ich die Rechte jeweils in einem Feld stehen, allow_xxx,
und frage auch nur noch diese drei Felder ab. Mit (!$res) will ich, wie von
dir beschrieben, überprüfen ob der User existiert. Dummerweise wird immer
die Fehlermeldung ausgegeben($err), egal ob die Daten korrekt oder inkorrekt
sind. Was mach ich falsch?
> Den von Dir beschriebenen Ansatz könnte man auch wählen, sollte man aber
> nicht, da Du ja alle Infos schon mit EINER Abfrage bekommen kannst.
Es funktioniert immerhin... ;-))
Gruß und Vielen Dank, hast mir schon sehr sehr viel weitergeholfen!
Marian
Reply to: