sessions und seiten die nicht erreichbar sein sollen

Zero2000

Erfahrenes Mitglied
Hallo

Eine bessere Überschrift ist mir leider nicht eingefallen :)

Ich bin gerade dabei ein kleines Loginscript mit Benutzerverwaltung und Rechteverwaltung zu schreiben.
Da ich noch Anfänger bin, ist es ein wenig umständlich und vielleicht auch kompliziert und unsicher geschrieben. Das ganze basiert auf Sessions.

Das Problem welches ich habe ist, dass wenn sich ein Benutzer einloggt er z.B. nur Menü A sieht. Wenn er aber in der Adresszeile des Browsers Menü B sehen will
dann brauch er bloß den Link anpassen von z.B.
PHP:
i_index.php?action=menu_1
auf
PHP:
i_index.php?action=menu_2
und schon sieht er Menü_2. Das darf er aber nicht!! :mad:
Wie kann ich ihm denn das unterbinden?
Wie anhand des Links richtig gedeutet öffne ich die Seiten mit einem Switch-Case Anweisungsblock.

MfG Maik
 
Dann musst du ihm den Zugriff auf die Seite verwehren. Dazu kannst du einfach dieselbe Abfrage nutzen, die entscheidet, ob ein Verweis zur zweiten Seite angezeigt wird.
 
HÄ?
kann ich das mit hier oben machen?
PHP:
session_start();
if(!session_is_registered('user') || $_SESSION['user'] == "") {
	header("location:../ilogin.php");
	die;
}
oder mit hier:
PHP:
switch ($_GET['action'])
{
default: include('iwelcome.php');
break;
case 'menu1': include('menu1.php');
break;
case 'menu2': include('menu2.php');
break;
}
oder ganz woanderst
 
Leider ist mein Thema noch aktuell und ich weis bis heute nicht wie ich
es vermeiden kann das ein user der nur menü1 sehen darf nicht den link so abändern kann damit er auch menü2 sieht.

MfG Maik
 
Also, in der Session wirst du wohl die UserID gespeichert haben. Einerseits solltest du auf jeder Seite prüfen, ob der User Zugriff darauf haben darf (z.B. GruppenID des Users auslesen, z.B. Mitglied von Gruppe "Contributor" ID 3). In einer Tabelle steht drinne, dass auf die Website (mit action menu1 mit Website ID 15) Mitglieder der Gruppe (GruppenID 3 - Contributor) lesenden Zugriff haben, Also wird die Seite angezeigt, sonst wird eine Fehlerseite mittels header ("Location: ..."); geladen oder per include angezeigt.

Bei der Darstellung des Menü's kannst du dasselbe verfahren anwenden, erweitere deine MySQL Abfrage auf GruppenID des Users und ob diese Gruppe Zugriff haben darf.

Du kannst auch eine Tabelle mit den einzelnen Rechten pflegen, dadurch kann amn später die Gruppen besser mit Rechten ausstatten (lesen, bearbeiten, erstellen, benutzer hinzufügen, benutzer löschen, etc.).


Gruß Radhad
 
Also ich arbeite zB mit einem Usersystem, welches zunächst, je nach Userlevel, eine Seite included, wo die Rechte überprüft werden und erst dann wird in diese Datei die aufgerufene included, ansonsten gibts eine Fehlermeldung. Finde das System eigentlich recht gut, kanns nur empfehlen ;)
 
Das habe ich ja vor einer halben Stunde beschrieben, nur würd ich halt die User noch in eine Gruppe setzen, und den Gruppen die einzelnen Rechte vergeben, die dann bestimmte Rollen darstellen. Rechte könnte man dann auch als Rollen zusammenfassen (um die Administration zu erleichtern).
 
Und wie ist das aufgebaut? Oder habt Ihr auf fertige Lösungen zurück gegriffen?

Vielleicht seid Ihr auch so nett und gebt mir ein paar Gedankenanstösse, denn mit Sessions hatte ich vorher nix am Hut.

In meiner MySQL Tabelle sind die Rechte mit 1 oder 0 gekennzeichnet.
Mein PHP-Skript schaut nun per if und else nach ob das jeweilige Menü angezeigt wird oder nicht. Also wenn Menü1 = 1 dann anzeigen.

MfG Maik
 
Zurück