Likes Likes:  0
Resultaten 1 tot 6 van de 6
Geen

Onderwerp: [PHP] Eval()

  1. #1
    Floris
    [PHP] Eval()
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    [PHP] Eval()

    Beste allemaal,

    Ik ben al een tijdje bezig met het volgende probleem:
    Ik heb een database draaien vanwaaruit pagina's worden opgehaald. Deze
    worden vervolgens in $contents geplaatst, en $contents wordt later in het
    script gebruikt.

    De bedoeling is dat in de pagina's die uit de db komen, ook PHP-code staat
    en ook wordt uitgevoerd. Hiervoor heeft PHP de functie eval(), maar ik krijg
    het maar niet goed aan de praat.

    Hier een voorbeeld van een pagina uit de db:
    De door u opgevraagde pagina bestaat niet, kan niet gevonden worden of is
    beveiligd:
    <?php echo $HTTP_SERVER_VARS['PHP_SELF']; ?>

    Nu een stukje PHP zoals ik die nu heb: <?php
    $query = "SELECT * FROM de_tabel WHERE pageid='999'";
    $result = mysql_query($query);
    $data = mysql_fetch_array($result);
    $data[contents] = "?>" . $data[contents] . "<?php";
    //$data[contents] = addslashes($data[contents]);
    ob_start();
    eval($contents = $data[contents]);
    $contents .= ob_get_contents();
    ob_end_clean();
    //$contents = stripslashes($contents);
    $contents=nl2br($contents);
    $pageid="999";
    $title=$data[title]; ?>

    Zoals duidelijk zal zijn, werkt dit niet goed. Ik krijg onderstaande error:
    ?>De door u opgevraagde pagina bestaat niet, kan niet gevonden worden of is
    beveiligd:
    Parse error: parse error in
    [weggelaten]/httpdocs/cats/shared/contents.php(34) : eval()'d code on line 1

    Opvallend is dat ?> ervoor staat, maargoed. Enig idee hoe ik dit goed aan de
    praat krijg? Uit de PHP documentatie wordt ik helaas niet heel veel wijzer..



  2. #2
    Jaap-Andre de Hoop
    [PHP] Eval()
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: [PHP] Eval()

    In article <3e22c689$0$49116$e4fe514c@news.xs4all.nl>, "Floris" <florisvlasveld@xs4all.nl> wrote:

    in voorbeeld van de handleiding staat niet

    >eval($contents = $data[contents]);


    maar
    eval ("\$str = \"$str\";");

    let op quotes
    misschien dat ie het dan wel doet.

    Jaap-Andre

  3. #3
    Floris
    [PHP] Eval()
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: [PHP] Eval()

    > in voorbeeld van de handleiding staat niet
    >
    > >eval($contents = $data[contents]);

    >
    > maar
    > eval ("\$str = \"$str\";");
    >
    > let op quotes
    > misschien dat ie het dan wel doet.


    Beste Jaap-Andre,

    Ik heb je tip gebruikt. Ik gebruik als voorbeeld deze pagina uit de DB:
    De door u opgevraagde pagina bestaat niet, kan niet gevonden worden of is
    beveiligd: <?php echo "Test"; ?>

    Dit resulteert in:
    Parse error: parse error in
    /usr/local/plesk/apache/vhosts/fastpoint.nl/httpdocs/cats/shared/contents.ph
    p(34) : eval()'d code on line 1

    Gebruik ik enkele ' ipv ", dan is dit de output:
    ?>De door u opgevraagde pagina bestaat niet, kan niet gevonden worden of is
    beveiligd:

    Lijkt er dus op dat mijn //$data[contents] = addslashes($data[contents]); en
    //$contents = stripslashes($contents);-idee uit de eerste post niet helemaal
    voor niets waren. Maar zoals je ziet wordt de PHP-code nog steeds niet
    uitgevoerd, en om de een of andere reden blijft ?> staan. Dit doe ik
    overigens (zie eerste post) zodat de gewone tekst niet direct gezien wordt
    als PHP..

    Iemand nog een idee?



  4. #4
    Chris
    [PHP] Eval()
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: [PHP] Eval()

    "Floris" <florisvlasveld@xs4all.nl> wrote in message
    news:3e22cd26$0$49106$e4fe514c@news.xs4all.nl...
    > > in voorbeeld van de handleiding staat niet
    > >
    > > >eval($contents = $data[contents]);


    try this:

    eval(' ?> '.$data[contents].' <?php ');

    laterz
    Chris



  5. #5
    robert
    [PHP] Eval()
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: [PHP] Eval()

    Floris <florisvlasveld@xs4all.nl>:
    > Maar zoals je ziet wordt de PHP-code nog steeds niet uitgevoerd, en om
    > de een of andere reden blijft ?> staan.


    Waarschijnlijk komt die voort uit de string "?>" die je midden in je code
    hebt staan; daar zal de PHP parser waarschijnlijk moeite mee hebben (ik
    verwacht dat 'ie denkt dat daar het script ophoudt).

    --
    robert

  6. #6
    Floris
    [PHP] Eval()
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: [PHP] Eval()

    > try this:
    >
    > eval(' ?> '.$data[contents].' <?php ');
    >


    Chris, je bent mijn held van de dag. Hoe kan het nou dat dit de oplossing
    is??



Webhostingtalk.nl

Contact

  • Rokin 113-115
  • 1012 KP, Amsterdam
  • Nederland
  • Contact
© Copyright 2001-2026 Webhostingtalk.nl.
Web Statistics