Hallo,
ich habe mir mal ein Zugriffsschutz zusammengebaut.
d.h. wenn ein Benutzer die Seite betritt gehört er der Gruppe Gast an und kann nur die Startseite und das Loginformular sehen.
registrierte bzw. eingeloggte Benutzer können dann auch die internen Seiten sehen.
Ich habe eine index.php in der dann der content per include bzw. require eingefügt wird. Das Menü ist immer sichtbar, jedenfalls die Links die für die jeweilige Gruppe sichtbar sein dürfen.
meine DB-Tabellen in Kurzfassung:
Tabelle Module
modul_id - modul_name...
Tabelle Benutzergruppen
group_id - group_name...
Tabelle Gruppen_Module
group_id - modul_id
Tabelle Benutzer
user_id - user_name - group_id...
Tabelle Default_Werte
default_group
bin ich damit auf dem richtigen Weg oder kann man noch was verbessern oder ändern?
vg
gourmet
ich habe mir mal ein Zugriffsschutz zusammengebaut.
d.h. wenn ein Benutzer die Seite betritt gehört er der Gruppe Gast an und kann nur die Startseite und das Loginformular sehen.
registrierte bzw. eingeloggte Benutzer können dann auch die internen Seiten sehen.
Ich habe eine index.php in der dann der content per include bzw. require eingefügt wird. Das Menü ist immer sichtbar, jedenfalls die Links die für die jeweilige Gruppe sichtbar sein dürfen.
meine DB-Tabellen in Kurzfassung:
Tabelle Module
modul_id - modul_name...
Tabelle Benutzergruppen
group_id - group_name...
Tabelle Gruppen_Module
group_id - modul_id
Tabelle Benutzer
user_id - user_name - group_id...
Tabelle Default_Werte
default_group
PHP-Code:
function check_zugriffsrechte($modul_id) {
if(defined('INCLUDE_CHECK') && isset($modul_id) && in_array($modul_id, $_SESSION['user_module'])) {
return TRUE;
}
else {
return die();
}
}
//steht am Anfang jeder zu inkludierenden Datei
check_zugriffsrechte($_GET['modul']);
//steht in der index.php
define('INCLUDE_CHECK', TRUE);
// -> Benutzerrechte für Gäste setzen <- //
//Benutzergruppe setzen (z.B. Gast mit wenig bis fast gar keinen Rechten)
if(!isset($_SESSION['user_rights'])) {
//$sql...FROM Default_Werte...
$_SESSION['user_rights'] = $row['default_group'];
}
//Module der Benutzergruppe setzen
if(!isset($_SESSION['user_module'])) {
//$sql...FROM Gruppen_Module...
$_SESSION['user_module'][] = $row['modul_id'];
}
//Wenn der user sich einloggt bekommt er natürlich eine andere Benutzergruppe
//(z.B. Gruppe Benutzer) mit mehr Zugriffsrechten als die Gruppe Gast
//Anzeige Menü
//$sql = "SELECT...
//FROM Gruppen_Module
//LEFT JOIN Module ON ...
//WHERE group_id = $_SESSION['user_rights']...
vg
gourmet