88871
29.07.2010, aktualisiert um 16:39:36 Uhr
6587
5
0
PHP Usermanagement - Wie löse ich wie welcher User was kann und darf ?
Ich schreibe gerade ein Usermanagement im einfachen Stil. Folgende User sind geplant:
- MAINADMIN (Rechtestufe1) Hardcore, es kann nur einen geben
- ADMIN (Rechtestufe2)
- USER1 (Rechtestufe3)
- USER2 (Rechtestufe3)
MAINADMIN (erstellt den admin und GIBTS NUR 1x!! Admins wirds unzählige geben.)
ADMIN (kann 2 User erstellen)
USER1 | USER2 (Können nur Ihre Daten ändern)
Es wird viele ADMIN's geben. Jeder ADMIN kann 2 USER erstellen.
Es gibt immer 1 ADMIN und 2 USER = 1 PACKET das ich ja irgendwo abfragen muss wer wozu passt. Anhand eines Eintrages in der mySQL ? ZTahlencode z.b. 5436 = Admin 5436 und User1 5436 und User2 5436........
Jeder ADMIN hat quasi ne eigene Seite in der er 2 USER erstellen kann. Die 2 USER haben auch eine eigene Seite wo Sie Ihre Daten anpassen können.
Die Seiten werden dann auch per Session Authentizierung abgesichert. Da löse ich es so: Wenn in der DB bei dem USER nicht diese Zahl steht = zurück zum INDEX.
Wie löst man nun das ganze Usermanagement ? Sollte ziemlich einfach sein, da ich noch "lernender" bin ''
- Rechte abfragen per mySQL ? z.b. anhand eines Zahlencodes in der Spalte xy=Aah, das ist der und der, der passt zu dem und dem....
- Per Session ? Aber woher kommt die Information wer zu welchem passt ?
Bitte um Tipps wie man sowas handhaben kann.
- MAINADMIN (Rechtestufe1) Hardcore, es kann nur einen geben
- ADMIN (Rechtestufe2)
- USER1 (Rechtestufe3)
- USER2 (Rechtestufe3)
MAINADMIN (erstellt den admin und GIBTS NUR 1x!! Admins wirds unzählige geben.)
ADMIN (kann 2 User erstellen)
USER1 | USER2 (Können nur Ihre Daten ändern)
Es wird viele ADMIN's geben. Jeder ADMIN kann 2 USER erstellen.
Es gibt immer 1 ADMIN und 2 USER = 1 PACKET das ich ja irgendwo abfragen muss wer wozu passt. Anhand eines Eintrages in der mySQL ? ZTahlencode z.b. 5436 = Admin 5436 und User1 5436 und User2 5436........
Jeder ADMIN hat quasi ne eigene Seite in der er 2 USER erstellen kann. Die 2 USER haben auch eine eigene Seite wo Sie Ihre Daten anpassen können.
Die Seiten werden dann auch per Session Authentizierung abgesichert. Da löse ich es so: Wenn in der DB bei dem USER nicht diese Zahl steht = zurück zum INDEX.
Wie löst man nun das ganze Usermanagement ? Sollte ziemlich einfach sein, da ich noch "lernender" bin ''
- Rechte abfragen per mySQL ? z.b. anhand eines Zahlencodes in der Spalte xy=Aah, das ist der und der, der passt zu dem und dem....
- Per Session ? Aber woher kommt die Information wer zu welchem passt ?
Bitte um Tipps wie man sowas handhaben kann.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 147934
Url: https://administrator.de/contentid/147934
Ausgedruckt am: 22.11.2024 um 13:11 Uhr
5 Kommentare
Neuester Kommentar
Zitat von @88871:
>
> <?php
> session_start();
>
> if (!isset($_SESSION['admin']) || !$_SESSION['admin']) {
> header('Location: ../index.php');
> exit;
> }
> ?>
>
>
also die abfrage ist unnötig.
Reicht wenn du folgendes machst:
if(!$_SESSION['admin']) {
header('Location:....');
Weiters reicht es wenn du einen generellen login machst und die sessionvariable:
$_SESSION['access'] assigns und dort entweder admin oder user.
if($dbusername == $username && $passwort == $dbpasswort) {
$_SESSION['access'] == $rights;
}
Gruß
masterG
Ich habe mal für AD-Integration das ACL-System nach MySQL/PHP übernommen.
Im ersten Anlauf brauchte ich > 800 SQL-Queries um die Gruppen und Berechtigungen richtig aufzulösen (das hat sich natürlich auf 1-2 reduziert)
Nein, tut es nicht (nur wenn man im Blinden-Modus programmiert).
Ausreichend wäre:
Oder dark3zzs ursprüngliche Lösung.
Was meinst du eigentlich mit "Wer zu welchem passt"?
Rechte-Storage kann man übrigens auch mit Integern machen:
Im ersten Anlauf brauchte ich > 800 SQL-Queries um die Gruppen und Berechtigungen richtig aufzulösen (das hat sich natürlich auf 1-2 reduziert)
Reicht wenn du folgendes machst:
if(!$_SESSION['admin']) {
if(!$_SESSION['admin']) {
Nein, tut es nicht (nur wenn man im Blinden-Modus programmiert).
<?php
session_start();
error_reporting(E_ALL|E_STRICT);
ini_set('display_errors','On');
if(!$_SESSION['keks']) { }
?>
PHP Notice: Undefined index: keks in /private/var/folders/4t/4t2eiwmMH8OoTNk4oJzEDk+++TI/-Tmp-/untitled_y07..php on line 8
Ausreichend wäre:
if(!@$_SESSION['keks']) {
Was meinst du eigentlich mit "Wer zu welchem passt"?
Rechte-Storage kann man übrigens auch mit Integern machen:
<?php
define('PERM_LOGIN', 1); //Binär: 00000001
define('PERM_USER', PERM_LOGIN<<1); //Binär: 00000010
define('PERM_ROOT', PERM_USER<<1); //Binär: 00000100
define('PERM_CREATE', PERM_ROOT<<1); //Binär: 00001000
//jetzt erstellen wir einen Benutzer mit Login, Create und Root-Rechten
$myPerm = PERM_LOGIN|PERM_ROOT|PERM_CREATE;//Binär: 00001101
//prüfen, ob ein Benutzer Login-Rechte hat
if(($myPerm|PERM_LOGIN) != $myPerm)
die("Sie haben keine Login-Berechtigung!");
//root recht wegnehmen
$myPerm = $myPerm^PERM_ROOT; //Binär: 00001001
//user recht hinzufügen
$myPerm |= PERM_USER;
?>