[PHP] Abfragen (SQL) / Sessions
-
Hallo,
habe zwei Probleme.
1) Sessions
Ich gehe auf meine index.php und logge mich dort per Nickname und Passwort ein. Diese beiden Variablen übergebe ich per Sessions auf die nachfolgende Seite mit:<?php session_start(); $_SESSION["name"] = $_POST['name']; $_SESSION["pw"] = $_POST['passwort']; ?>
So, kein Problem. Die Sessionvariablen werden somit registriert. Aber nun habe ich folgendes Problem. Auf einer Folgeseite werden die Variablen wieder übergeben. Funktioniert auch, aber auf der Folgeseite gibt es einen "Zurück" - Link. Dieser Link verweist wieder auf die 1. o.g. Seite.
Da aber dort die Variablen mit dem $_POST - Verfahren registriert werden, wird die Sessionvariable natürlich neu registriert. Nur leider wird diesmal nichts per $_POST übertragen und somit erscheint "Kein Zugriff".2) Abfragen (SQL)
Ich habe eine MySQL - Datenbank.
In dieser Datenbank gibt es folgende Tabellen, die für mein Problem relevant sind.
gruppenliste
gruppe_zugriff
zugriffsrechtegruppenliste
Dort steht drin:
- 1 | Administrator
- 2 | Moderator
- 3 | Gastzugriffsrechte
Dort steht drin:
- 1 | Schreiben
- 2 | Lesengruppe_zugriff
Dort steht drin:
- 1 | 1
- 1 | 2
- 2 | 1
- 2 | 2Also auf gut Deutsch gesagt:
- Administrator darf Schreiben und Lesen
- Moderator darf Schreiben und Lesen
- Gast darf gar nichtsMeine SQL - Abfrage lautet:
SELECT t1.g_id, t1.g_name, t3.rechte FROM gruppenliste as t1 INNER JOIN gruppe_zugriff AS t2 ON t2.gruppenliste_g_id = t1.g_id INNER JOIN zugriffsrechte AS t3 on t2.Zugriffsrechte_ZID = t3.ZID") OR die(mysql_error());
Leider gibt er es nun folgendermaßen aus:
Administrator - Schreiben
Administrator - Lesen
Moderator - Schreiben
Moderator - LesenIch möchte es aber gerne so haben:
Administrator - Schreiben, Lesen
Moderator - Schreiben, Lesen-----
Vielen Dank schon einmal.
Gruß,
Thorsten
-
zu 1.
frag doch einfach, ob etwas übergeben wurde, wenn ja, dann schreib es in die session.
zu 2.
Wieviele verschiedene Gruppen, Zugriffsrechte und Zugriffsgruppen gibt es denn, die eine Datenbank rechtfertigen?
Zugriffsrechte kannst du mit Bitwerten realisieren:
0x01 => Lesen 0x02 => Schreiben 0x04 => Beitrag löschen 0x08 => User löschen 0x10 => Forum löschen Admin = 0x01 | 0x02 | 0x04 | 0x08 | 0x10 Moderator = 0x01 | 0x02 | 0x04 User = 0x01 | 0x02 Gast = 0x01 $UserInfo = HoleBenutzerInfoAusDB($Username); $UserRights = $UserInfo["AccessRights"]; // Benutzer darf schreiben if (($UserRights & 0x02) == 0x02) { //... }
-
erm isset($_SESSION["nick"])
dann nicht mehr setten sonst schon fertig
außerdem solltest sowieso error ausgeben:if(trim($_POST["nick"])=="") echo "nick eingeben"; //noch mit dem pw
mfg tobZel
-
Ahh, vielen Dank.
Doch ja, nun habe ich es verstanden, auch mit den Zugriffsrechten.Gruß,
Thorsten