Wie kann ich Ränge erstellen und denen unterschiedliche Rechte geben?
Ich habe in einer Mysql Datenbank
Die Zeilen id, user, passwort, admin
bei admin steht jeweils 1 = Ja und = Nein.
Doch wie kann ich bei dem angemeldeten User prüfen, welcher Wert dort vorhanden ist?
Mein Code für den Teil sieht so aus:
[PHP]
$status = „SELECT ´admin´ FROM login WHERE user = ‚$user‘ AND passwort = ‚$passwort‘“;
$rank = mysql_query($status)
or die („Fehler!“);
[/PHP]
Bei mir wird Fehler angezeigt, aber ich weiß nicht wie man genau diesen Wert aus der Zeile auslesen kann.
Dann würde ich es mit einem If Befehl machen. Das bei z.B. bei $rank = 1 andere Sachen angezeigt werden als bei
$rank = 0
Also im ersten Post hast du geschrieben das du einen Fehler bekommst, wäre vom vorteil wenn du uns auch die Fehlermeldung beschreibst.
Als zweitens verweise ich dich mal auf mysqli oder PDO, da mysql als deprecated eingestuft ist bei php. Dies ist veraltet und sollte nicht mehr verwendet werden.
Für SELECT, SHOW, DESCRIBE, EXPLAIN und andere Anweisungen, die eine Ergebnismenge zurückgeben, gibt mysql_query() eine Kennung resource bei Erfolg zurück oder FALSE bei Fehlern.
So könnteste es z.B. lösen
[PHP]$status = „SELECT ´admin´ FROM login WHERE user = ‚$user‘ AND passwort = ‚$passwort‘“;
$query = mysql_query($status) or die (mysql_error());
$row = mysql_fetch_object($query);
if($row->admin){ admin }
else{ no admin }[/PHP]
aber wenn ich nun eine seite wechsel. z.B von Home auf Kontakt, steht dort wieder „No Admin“.
Kann man das auch wie den Login in einer Session speichern?
mach doch ne neue SESSION
bsp:
[PHP]$status = „SELECT ´admin´ FROM login WHERE user = ‚$user‘ AND passwort = ‚$passwort‘“;
$query = mysql_query($status) or die (mysql_error());
$row = mysql_fetch_object($query);
$_SESSION[„admin“] = $row->admin;
[/PHP]
Abfrage dann so
[PHP]if(!$_SESSION[„admin“]){ no admin }
else{ admin }[/PHP]
[PHP] $status = „SELECT admin FROM login WHERE user = ‚$user‘ AND passwort = ‚$passwort‘“;
$query = mysql_query($status) or die (mysql_error());
$row = mysql_fetch_object($query);
$_SESSION[„admin“] = $row->admin;
if($_SESSION["admin"]){ echo "admin"; }
else{ echo "no admin"; }[/PHP]
Mit diesem Code geht es nur, bis ich 1x aktualisiert habe.
[PHP] $status = „SELECT admin FROM login WHERE user = ‚$user‘ AND passwort = ‚$passwort‘“;
$query = mysql_query($status) or die (mysql_error());
$row = mysql_fetch_object($query);
$_SESSION[„admin“] = $row->admin;
if($_SESSION["admin"]){ echo "admin"; }
else{ echo "no admin"; }[/PHP]Die letzten beiden Zeilen als Test. Dort steht auch immer no admin.
Dann bei der Page
[PHP]
if ($page == „seite1“) {
session_start();
if(isset($_SESSION[„admin“])) { Admin Text } else {
echo „Seiteninhalt“; }
} else {}
[/PHP]