User Weiche mit MySQL Datenbank

tester33

Erfahrenes Mitglied
Hallo zusammen,
ich habe folgendes Problem:
Ich habe verschiedene User, die werden schön eingeloggt, kommen alle auf die gleiche Seite, das soll auch so sein. Aber wenn sie nun auf den Menüpunkt hallo klicken möchte ich dass der User Admin auf die seite admin.php kommt, der User Cooperation auf cooperation.php usw. Ich habe alle Daten in einer My SQL Datenbank, wie kann ich das machen? Ich muss auf die Zugriff.php Datei zugreifen, dann den Namen auslesen usw. Wie kann ich das machen?

MfG
Simon
 
Du kannst deiner User-Tabelle eine Spalte "weiterleitung" hinzufügen, in der definiert wird, wohin ein Benutzer nach dem Login oder auch beim Klick auf Link "hallo.php" geleitet werden soll. Dazu müsstest du in der hallo.php den User-ID aus der Session holen, und damit die Spalte "weiterleitung" auslesen. Dann hast du die Datei und musst nur mittels header('Location: ' . $weiterleitung) redirecten.
 
Die Lösung von saftmeister ist möglich, aber redundant, da du bei jedem User in der Tabelle eine Spalte "weiterleitung" hast.

Ich würde eine Spalte namens "usergroup_id" hinzufügen, in der du die ID einer weiteren Tabelle "usergroup" speicherst.


Code:
___________________
|users             |
--------------------
|...               |
|usergroup_id      |
--------------------

___________________
|usergroup         |
--------------------
|id                |
|forwarding        |
--------------------
Bei jedem User liest du zunächst die Spalte "usergroup_id" aus und dann liest du damit die Spalte "forwarding" aus.
Von mir aus kannst du beides auch in die Session packen.

Somit musst du auch nicht bei einer Änderung alle Weiterleitungen ändern, sondern nur die eine in der Tabelle "usergroup".
 
Zuletzt bearbeitet:
Hi,
danke vielmal für die Antworten. Ich habe nicht so viele User, daher reicht eine Tabelle. Kann ich eine Variable beim Login speichern (login.php) und den Inhalt dann auf einer anderen Seite abrufen? Oder soll ich das per externe Datei machen? (Weiterleitungs URL.php) Und wie würde diese aussehen? Das ist einfach das was ich noch nicht so gut kann.

MfG
Simon
 
Wie gesagt könntest du das in die Session speichern.
Ich würde das eben direkt nach dem Login machen.

Ich schätze mal, dass du ungefähr so die Daten beim Login abrufst:
SQL:
SELECT * FROM users WHERE username='___' AND pw='___' LIMIT 1
Dann speicher einfach den Wert der Spalte "forwarding" bzw. "weiterleitung" in die Session, z.B.:
PHP:
$_SESSION['user_forwarding'] = $row['forwarding'];
Je nachdem wie du jetzt die Daten verarbeitest ([phpf]mysql_fetch_object[/phpf], ...), schaut der dieser Teil anders aus.

Dann greifst einfach bei deinem zweiten Skript so darauf zu:
PHP:
session_start(); // Am Anfang der Datei!

header("Location: ".$_SESSION['user_forwarding']);
 
Es geht deswegen nicht, weil header() und session() Befehle sind, die auf jeden Fall ausgeführt werden müssen, _bevor_ irgendwelcher Inhalt ausgegeben wird.
 
Zurück