[PHP] eval & highlite_string



  • Moin.

    ich hab fuer mich eine testseite auf der ich schnell php-code ausfuehren kann:

    eval($_POST[query]);
    

    wenn man da jetzt das hier durchjagt:

    <?php
        echo 'hihi';
    ?>
    

    kommt diese fehlermeldung:

    Parse error: parse error, unexpected '<' in C:\xampp\htdocs\my\quickphp\execute.php(34) : eval()'d code on line 1

    also lass ich mir den code mit highlite_string nochmal anzeigen:

    highlite_string($_POST[query]);
    

    dann kommt aber diese meldung (im ausgabefenster):

    <?php echo
    Warning: Unexpected character in input: '\' (ASCII=92) state=1 in C:\xampp\htdocs\my\quickphp\execute.php on line 24
    'hihi\'; ?>

    woran liegt das?


  • Mod

    schalt erstmal die magic_runtime_quotes aus - die erzeugen den fehler nr. 2

    und lass einfach <?php und ?> beim eval weg.

    die sicherheitslücke ist dir aber schon klar die du da aufmachst? das ist mehr als nur die Tür offen lassen



  • das ist nur bei mir auf dem lokalen computer. da ich sehr viel teste... das ich nicht jedesmal eine neue datei anlegen muss...

    aehm. wie schalte ich magic_runtime_quotes nur fuer dieses script aus? oder geht das nicht?

    in der php.ini sind sie auf Off:

    ; Magic quotes for runtime-generated data, e.g. data from SQL, from exec(), etc.
    magic_quotes_runtime = Off

    ok. ich habs jetzt mit was anderen geschafft:

    $query = str_replace("\'", "'", $query);
    $query = str_replace('\"', '"', $query);
    highlight_string('<?php '.$query.' ?>');
    

    ist zwar nicht die schoenste variante aber sie funktioniert ^^


Anmelden zum Antworten