Inmiddels opgelost, deze kan weg

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);
Kan je je topic terugzetten?

Nu is dit topic meteen waardeloos terwijl iemand anders er wat aan kon hebben.

hierbij het topic terug geplaatst inclusief met oplossing op het eind ;)
Nick schreef op 03.01.2010 15:43

(...)
Aangepast naar

$test1 = ADMIN_VIEW_ADMIN_PANEL;
$test2 = ADMIN;
define($test1,$test2);


in principe klopt dit nog niet, Je hebt ADMIN ge-defined dus dat klopt, maar $test1 is een string dus daar moeten quote's omheen.(correct me if i'm wrong.)
Jens,

Ik heb het geprobeerd met dubbele quote's en dat werkt ook ;)

Het is nu $test1 = "ADMIN_VIEW_ADMIN_PANEL";

Ik ga die manier toepassen omdat dat netter is :)

Bedankt

Reageren