IF Admin show.

Tags:    php mysql

Hvordan gør jeg sådan her:

At hvis jeg har et bruget ID fx 1.
Så finder jeg brugere med ID 1 og så tjekker den hvad den user level er, og hvis user level = superadmin SHOW "this"

Har prøvet noget men det virkede overhovedet ikke.




8 svar postet i denne tråd vises herunder
4 indlæg har modtaget i alt 21 karma
Sorter efter stemmer Sorter efter dato
Da jeg alligevel havde en halv time jeg kunne undvære, tænkte jeg at dette kunne være rart med en opdatering på adgangskontrol... :)

Nedestående klasse er en simple access controller, som kan bruges til enormt mange ting. Der er naturligvis også plads til forbedringer. :)
Fold kodeboks ind/udPHP kode 


Herunder findes en lille demo af hvordan den kan benyttes:
Fold kodeboks ind/udPHP kode 


Håber det kan bruges...



Indlæg senest redigeret d. 11.11.2011 14:55 af Bruger #10216
Hvis du har en bruger tabel kan du med en simpel forespørgsel skrive således

Fold kodeboks ind/udSQL kode 

brugerens ID, skal du selvfølgelig gøre så den bliver variabel, altså du kan sætte en variabel i PHP, som du benytter til at sætte brugeren ID. Du kører så SQL koden i din PHP, og du kan så med PHP lave et tjek om brugeren er super admin.
Fold kodeboks ind/udPHP kode 

Man kan sige at Du først laver forespørgslen via SQL i PHP, og herefter kan du tjekke på om det resultat du fik stemte overens med det du ønskede.

Husk at rette koden til, så den passer til dine variabler o.lign.



Indlæg senest redigeret d. 10.11.2011 13:23 af Bruger #4487
Fold kodeboks ind/udKode 


Noget i retning af dette ville virke, med visse ændringer:
- SQL'en i get_user_level kan du selvfølgelig rette til at passe til din database.
- Værdi sætningen af konstanten SUPER_ADMIN_LEVEL skal passe til værdien for SUPER_ADMIN's
- $_SESSION['userid'] skal rettes til at passe til, hvor du gemmer userid
- Hvis du kun afvikler koden en gang og gemmer dens svar i $_SESSION sparer du resource, men tilgengæld bliver en bruger der aldrig logger ud ved med at være det som han loggede ind som.




Med den kode du har der, vil din else del altid køre hvis brugeren ikke er superadmin. Også hvis brugeren faktisk er en supporter eller redaktør.

Det du hellere skal gøre er at benytte else if i stedet for if i dit eksempel
Fold kodeboks ind/udPHP kode 




Indlæg senest redigeret d. 10.11.2011 22:47 af Bruger #4487
Fold kodeboks ind/udPHP kode 


Nu er jeg kommet frem til denne kode og det virker fint nok.
Men problemmet er at hvis jeg ikke er superadmin bliver min "else" vist.



Du kunne jo også bare lave et "level" der hedder bruger? Så behøver du ikke til at bruge else, men kan bare gøre det på samme måde som med de andre? :D



Tak Michael... Den kan jeg da lige snuppe til min 'værktøjskasse' :P



Værsgo!
Så burde det være nogenlunde lige til også at proppe reglerne i en database. :)



t