Beste tweakers,
Ik ben al een tijdje bezig met een websitetje, daarvoor gebruikte ik eerst statische config files voor de user rechten. Deze is als volgt opgebouwd:
Aan de hand van die gegevens zet de volgende functie het om in true or false
Nu wou ik een stapje verder gaan, ik wou de gegevens dynamisch maken, gewoon voor de gebruiksvriendelijkheid. Nu is het plan om die gegevens uit de database te halen, maar om te testen of de functie ook met variabele werkt heb ik eerst het volgende gedaan
En dat werkte zoals het hoorde, alles werd nog steeds gecontroleerd. Maar toen ging ik de gegevens uit de database halen en ineens doet die het niet meer.
Wat heb ik gedaan, ik heb 2 variable's die gevuld zijn met de juiste informatie.
Dit resultaat van de variable krijg ik als ik deze echo
en ze staan als volgt in het script
En ik heb ook al gecontroleerd of ik userlevel 64 heb, en die heb ik. en toch krijg ik niet de toegang tot de pagina.
Iemand enig idee wat er fout gaat? Alvast bedankt!
Ik ben al een tijdje bezig met een websitetje, daarvoor gebruikte ik eerst statische config files voor de user rechten. Deze is als volgt opgebouwd:
PHP:
1
2
3
4
5
6
| define("VISITOR", 1 ); define("USER", 2 ); define("MODERATOR", 4 ); define("ADMIN", 64 ); define("ADMIN_VIEW_ADMIN_PANEL", ADMIN ); |
Aan de hand van die gegevens zet de volgende functie het om in true or false
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| function isUserAuthorized( $sectionlevel ) { // controleer of de sessie gegevens aanwezig zijn if( !isset( $_SESSION["slevel"] ) ) { // de sessie gegevens zijn niet aanwezig return false; } // haal het gebruikersniveau op (in integer formaat) $userlevel = intval( $_SESSION["slevel"] ); // ok, hier gebeurd de werkelijke magic ;-) We gebruiken de bitwise AND operator! // controleer of de gebruiker toegang heeft tot de sectie return ( $userlevel & $sectionlevel ) > 0 ; } |
Nu wou ik een stapje verder gaan, ik wou de gegevens dynamisch maken, gewoon voor de gebruiksvriendelijkheid. Nu is het plan om die gegevens uit de database te halen, maar om te testen of de functie ook met variabele werkt heb ik eerst het volgende gedaan
PHP:
1
2
3
| $test1 = "ADMIN_VIEW_ADMIN_PANEL"; $test2 = ADMIN; define($test1,$test2); |
En dat werkte zoals het hoorde, alles werd nog steeds gecontroleerd. Maar toen ging ik de gegevens uit de database halen en ineens doet die het niet meer.
Wat heb ik gedaan, ik heb 2 variable's die gevuld zijn met de juiste informatie.
Dit resultaat van de variable krijg ik als ik deze echo
PHP:
1
2
| $description = ADMIN_VIEW_ADMIN_PANEL $section2['tbl_userright_definition'] = ADMIN |
en ze staan als volgt in het script
PHP:
1
2
| define("ADMIN", 64 ); define($section2['tbl_userright_definition'],$description); |
En ik heb ook al gecontroleerd of ik userlevel 64 heb, en die heb ik. en toch krijg ik niet de toegang tot de pagina.
Iemand enig idee wat er fout gaat? Alvast bedankt!
[ Voor 1% gewijzigd door nickb90 op 14-01-2010 11:21 . Reden: Iets meer informatie ]