edit
Op verzoek van het lid hieronder plaats ik het bericht terug ;)
Beste,
Ik ben al een tijdje bezig met mijn eigen website en ik heb het probleem dat ik mijn rechtensysteem niet zo kan maken dat het uit de database kan komen.
Het script wat ik ervoor gebruik bestaat uit 2 delen, een config en het de functie zelf.
Ik test momenteel eerst het script door 2 variable te vullen met tekst, als dit werkt zal dit vervangen worden met database inhoud. Maar om fouten uit te sluiten vul ik de variable test1 en test2 met tekst.
Het config bestand
define("ADMIN", 1 );
/**
* verschillende secties binnen onze applicatie met bijbehorende autorisatie niveaus
*/
/*
Admin panel
*/
define("ADMIN_VIEW_ADMIN_PANEL", ADMIN);
En de functie zelf
/**
* Controleer of de gebruiker genoeg rechten heeft om de sectie te bekijken
*
* @param $sectionlevel - autorisatie niveau van de meegegeven sectie
* @return bool - true indien de gebruiker is geautoriseerd om deze sectie te bekijken, anders false.
*/
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 heb ik de config als volgt aangepast
define("ADMIN_VIEW_ADMIN_PANEL", ADMIN);
vervangen met
$test1 = '"ADMIN_VIEW_ADMIN_PANEL"';
$test2 = 'ADMIN';
define($test1,$test2);
Als ik dan de pagina bezoek krijg ik de melding dat ik niet toegestaan ben.
Iemand enig idee wat ik fout doe?
Alvast bedankt!
Nick
UPDATE
Ik heb zelf de oplossing gevonden, ik heb het volgende gedaan
$test1 = '"ADMIN_VIEW_ADMIN_PANEL"';
$test2 = 'ADMIN';
define($test1,$test2);
Aangepast naar
$test1 = ADMIN_VIEW_ADMIN_PANEL;
$test2 = ADMIN;
define($test1,$test2);