• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Ränge in einer Mysql Datenbank speichern

xFrager

Mitglied
Hallo,

ich habe eine Frage:

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!");
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
 
Werbung:
Ergänze in deinem Code noch mysql_error() (siehe Manual), dann wirst Du auch wissen was an deinem MySQL-Statement falsch ist.
 
Werbung:
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 }
 
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 }
danke, geht :)

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?
 
Werbung:
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;
Abfrage dann so
PHP:
if(!$_SESSION["admin"]){ no admin }
else{ admin }

Währe ne Lösung die mir Spontan einfällt
 
da wird nur angezeigt "no admin"
außer nach dem einloggen, aber wenn ich einmal die Seite neu lade steht dort wider no admin
 
Werbung:
Habe ich ja schon wegen dem Login, wie ist es denn wenn es 2 gibt?

Kann man denen Namen geben?
z.B.
session_start(login)
session_start(admin)

??
 
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"; }

Mit diesem Code geht es nur, bis ich 1x aktualisiert habe.
 
Werbung:
Es kann daran liegen das du 2mal die session startest

Ich habe auch die vermutung das du am ende der Seite die session löscht mit sessio_destroy
dies darf nicht da stehen, denn sonst bringen sessions nix ;)
 
die session muss auf der hauptseite stehen
Arbeitest du mit einzelne seiten wie z.B.
domain.de/index.php, domain.de/login.php
oder mit GET variablen wie
domain.de/index.php?page=index
 
Werbung:
einfach in der index.php die session starten
ansonsten wenn du ohne GET variablen arbeitest dann muss es überall rein
 
Werbung:
kann man mehr code dann bekommen?
ich weiß ja nicht was du alles gemacht hast bisher und wo ein Fehler sein könnte
 
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"; }
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 {}
 
Zurück
Oben