Cookielogin + recht abfrage

noname

Mitglied
Ich hab folgendes Problem !

Ich habe einen Login. Wenn ich dort meine Daten (Benutzername, Passwort) eingebe, fragt das Script in einer mySQL Datenbank folgende Daten ab :

USERNAME
PASSWORD

wenn die Eingabe passt, speichert er diese Daten in einem Coockie.

Jetzt zu meinem Problem.

Was kann ich machen, wenn ich meinen Seiten unterschiedliche Rechte geben will.

Ich habe dafür in der mySQL D. eine Tabelle mit dem Namen ACCESS angelegt.

Es soll mehrere Access Möglichkeiten geben :

2 = lightmember
10 = normal
20 = vote posten
30 = clanwars posten
40 = members posten
100 = full Admin

Was muss ich jetzt eingeben, damit das Script nur denen Rechte gibt :

z.B. Memberseite : 40 oder 100 darf da rein.

schreib ich dann in der Abfrage :

PHP:
<?php
session_start (); // Session starten.

 if ((session_is_registered ("user_eingeloggt")) AND ($user_eingeloggt) AND access==(100;40))
 {
include ("admin/sites/joinus/include/index.php");
 }
 else
 {
  print ("Du bist nicht eingeloggt !");
 }

?>

Mir ist aufgefallen, dass wenn man es so schreibt, Würde er ja, 1. wenn man nicht eingeloggt ist die Else Ausgabe öffnen oder wenn man nicht die entsprechenden Rechte hat das Gleiche machen...

Wie kann ich das ändern ??

PleaZe Help Me..
-------------------------
http://www.tnxclan********
-------------------------
 
du hast nen $ vor access vergessen (falls es ne variable ist), vielleicht liegt der fehler daran, dass er nicht richtig abfragt. desweiteren könntest du das so formulieren $access>=40 für alle user ab stufe 40
 
hi!

also diese zeile stimmt nicht:
PHP:
if ((session_is_registered ("user_eingeloggt")) AND ($user_eingeloggt) AND access==(100;40))
erstmal hast du bei 'access' ein $ vergessen und 2. was soll denn das sein "access==(100;40)"??

mit fogender zeile müsste die abfrage stimmen:
PHP:
if (session_is_registered("user_eingeloggt") AND ($access == "100" OR $access == "40"))
und folgenden teil brauchst du gar nicht da du ja schon abfrägst ob die variable registriert ist: " AND $user_eingeloggt"

matt:)
 
du machst einfach nach dem if ein paar elseifs (wenn $accses==10 dann "Du hast kein recht dazu")und am schluss das else
 
also ich persoenlich wuerde ja eher zu switch() greifen, da bleibt der source übersichtlicher und mal abgesehen von den bytes die an traffic gespart woerden .. *g* ..natuerlich dürfte die switch anweisung auch schneller sein als 20 if() schleifen. ;)

PHP:
if(isset[$_SESSION["user_eingeloggt"]) && (isset($_POST["access"]))
    {
    switch($_POST["access"])
      {
       case "40":include("bla.php");break;
       case "100": include bla2.php");break;
       }
   }

my 2 eurocents :rolleyes:
 
Zuletzt bearbeitet:
Original geschrieben von loki2002
also ich persoenlich wuerde ja eher zu switch() greifen, da bleibt der source übersichtlicher und mal abgesehen von den bytes die an traffic gespart woerden .. *g* ..natuerlich dürfte die switch anweisung auch schneller sein als 20 if() schleifen. ;)

my 2 eurocents :rolleyes:

cool, das ist natürlich viel besser! nur: ich kannte es nicht ;) *phpnewbie*
 
es werden gleich viel daten versendet, ob ich nun ne if-schliefe oder ein switch nehme, da das php-programm ja auf dem server ausgeführt wird und nur die ausgaben übertragen werden. und die ausgaben bleiben ja gleich :)

hab mich übrigens gewundert, dass ihr ein so altes thema nochmal aufgreift :)

matt
 
die daten bleiben vielleicht gleich in der übertragung nur ackert der rechner alle 20 elseif einzeln durch wie blöde, und das das zeit kostet ist wohl offensichtlich! deshalb caseof, weil es sofort zum passenden case springt und nicht erst suchen muss, neben performancegründen auch weniger schreibarbeit (abgesehen von copy+paste)

think about it
 
Zurück