Ich weiß jetzt nicht ob das Thema noch aktuell ist oder ob sich sein Problem bereits gelöst hat.
Natürlich sind BitFlags eine effizientere Variante aber ich denke nicht, dass er nach so kurzer Zeit damit zurecht kommen wird.
Du machst folgendes:
Erstelle in deiner
Datenbank in der Tabelle wo der
Account gespeichert ist eine neue
Spalte name
Auth.
Du weist dieser
Spalte den Typ
INT und eine maximale Länge von
1 zu. Den Standartwert setzt du auf
0. (Und ja ich meine die
Zahl 0.)
Bei jeder Registration wird dieser Wert auf 0, den Standart Rang gesetzt.
Dann erstellst du eine neue Datei die du meinetwegen
SiteFunctions.php nennen kannst oder wie du gerade möchtest.
Dort schreibst du folgenden Code hinein.
PHP Code:
<?php
function getUserAuth($databaseAuth){
$strAuth = null;
switch($databaseAuth){
case 0:
$strAuth = 'Registriertes Mitglied';
break;
case 1:
$strAuth = 'Premium Mitglied';
break;
case 2:
$strAuth = 'Administrator';
break;
}
return $strAuth;
}
Diese Datei fügst du dann mit
require_once() in deine Hauptdatei ein oder wo auch immer du deine Dateien includierst.
Hast du das gemacht musst du nun eine Abfrage an eine Datenbank machen bzw. beim Login die Spalte
Auth abfragen. Den Wert den du bekommst speicherst du in der $_SESSION Variable zum Bleistift unter Authority oder Auth.
Du hast jetzt den Zahlenwert abgespeichert. Wenn du jetzt an irgendeiner Stelle auf deiner Seite diesem Zahlen Wert einen Rangnamen zuweisen möchtest wirfst du es einmal durch diese Funktion und lässt es ausgeben.
PHP Code:
<?php echo getUserAuth($_SESSION['Auth']); ?>
Abfragen tust du den Rang bei if Abfragen oder Ähnlichem lediglich über den Zahlenwert. Der String ist nur dafür da um dem User seinen Rang zu offenbaren.