> 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 via email to