Avatar billede djthomas Nybegynder
06. april 2007 - 16:32 Der er 3 kommentarer og
1 løsning

phpcode ind i class fra DB

jeg er ved at lave et lille admin-hack i mit system hvor jeg som admin kan indtaste noget PHPkode i min database, og som så skal eksekveres inde i en class.
Jeg har tænkt på sikkerheden omkring dette og det er ikke et problem, da det KUM er mig selv der kan indtaste den phpkode.

Jeg jeg har lavet dette:

<?

$phpCodeFromDB = "$this->text = hej hej";

$page = new TextAdmin();

$page->pre_init( $phpCodeFromDB );

class TextAdmin{
   
    var $test = null;
   
    function pre_init( $code )
    {
        $code;       
    }
   
}

?>

men $test inde i class blir ved at være null, hvordan får jeg pre_init(), til at eksekvere min phpkode fra variablen?
Avatar billede djthomas Nybegynder
06. april 2007 - 16:33 #1
<?

$phpCodeFromDB = "$this->test = hej hej";

$page = new TextAdmin();

$page->pre_init( $phpCodeFromDB );

class TextAdmin{
   
    var $test = null;
   
    function pre_init( $code )
    {
        $code;       
    }
   
}

?>

skulle det selvfølgelig være, men det virker nu stadig ikke
Avatar billede djthomas Nybegynder
06. april 2007 - 19:36 #2
Nå jeg laver det bare på en anden måde når det bare er til mit eget brug...

<?

$phpCodeFromDB = "$page->test = hej hej";

$page = new TextAdmin();

$phpCodeFromDB );

class TextAdmin{
   
    var $test = null;
   
}

?>
Avatar billede djthomas Nybegynder
06. april 2007 - 19:37 #3
Det virker nemlig
Avatar billede dkfire Nybegynder
06. april 2007 - 21:15 #4
Du kan også bruge eval til din første kode :-)

class TextAdmin{
 
    var $test = null;
 
    function pre_init( $code )
    {
        eval($code);     
    }
 
}
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester