Ränge in einer Mysql Datenbank speichern

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!“);
[/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

Ergänze in deinem Code noch mysql_error() (siehe Manual), dann wirst Du auch wissen was an deinem MySQL-Statement falsch ist.

Bei mir werden dort keine Fehler angezeigt.

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]

danke, geht :slight_smile:

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]

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

du musst am Anfang der Seite auch die session starten mit session_start()

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)

??

aso, wusste net das du den schon gestartet hast. Einmal reicht

[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.

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 :wink:

ich starte 1x die Session, aber nur für den Login glaube ich…
und session destroy habe ich nur auf einer logout.php

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

Jep,
ich arbeite mit logout.php
und einer index.php?page

muss ich die session dann überall reinschreiben?

einfach in der index.php die session starten
ansonsten wenn du ohne GET variablen arbeitest dann muss es überall rein

ich habe es jetzt immer an den obersten Platz auf jeder Seite geschrieben, aber es geht immer noch nicht

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"; }[/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]