Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di AnubiDk
    Registrato dal
    Jan 2006
    Messaggi
    106

    Funzione PHP eval(), dubbi e perplessità...

    Sto usando per la prima volta la funzione PHP eval(); , dal momento che avrei bisogno di leggere, estrarre ed eseguire del codice PHP in una pagina web...

    Ora, già i primi esempi non vanno, e non capisco cosa sbaglio...


    se scrivo


    $pippo="
    echo \"Hello $valr\";
    ";

    eval($pippo);



    mi scrive a schermo Hello (giustamente..)

    Se invece scrivo

    $pippo="
    $valr ='world';
    echo \"Hello $valr\";
    ";

    eval($pippo);



    Dovrebbe visualizzarmi Hello World, ma invece non mi visualizza nulla...

    Perchè? Dove sbaglio?


  2. #2
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Cosi

    codice:
    $pippo="\$valr ='world';echo \"Hello \$valr\";";
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  3. #3
    Utente di HTML.it L'avatar di AnubiDk
    Registrato dal
    Jan 2006
    Messaggi
    106
    Originariamente inviato da badaze
    Cosi

    codice:
    $pippo="\$valr ='world';echo \"Hello \$valr\";";
    Ok Thanks!!!

    Io ora dovrei prendere uno script PHP immagazzinato sul db in un campo di tipo longtext ed eseguirlo.

    Mettiamo che sia immagazzinato in una variabile $testo, devo usare addslashes($testo) prima di utilizzare eval()?

    E altra domandona, quello che io immagazzino in $testo potrebbe pure essere html + php, avrei problemi dato che c'è pure l'HTML? Eval funziona lo stesso?

    Denkiu...

    :master:

  4. #4
    Utente di HTML.it L'avatar di AnubiDk
    Registrato dal
    Jan 2006
    Messaggi
    106
    ad esempio se io avessi questo nella variabile $testo

    codice:
    <html>
    <body>
    
    <?php
    
    $var = 'world';
    echo "Hello $var";
    
    ?>
    
    
    </body>
    </html>
    che "operazioni" devo fare prima di richiamare

    codice:
    eval ($testo);
    ?

  5. #5
    Utente di HTML.it L'avatar di AnubiDk
    Registrato dal
    Jan 2006
    Messaggi
    106
    uppa...

  6. #6
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Originariamente inviato da AnubiDk
    Ok Thanks!!!

    Io ora dovrei prendere uno script PHP immagazzinato sul db in un campo di tipo longtext ed eseguirlo.

    Mettiamo che sia immagazzinato in una variabile $testo, devo usare addslashes($testo) prima di utilizzare eval()?

    E altra domandona, quello che io immagazzino in $testo potrebbe pure essere html + php, avrei problemi dato che c'è pure l'HTML? Eval funziona lo stesso?

    Denkiu...

    :master:
    Se prendi lo script da un campo db devi (penso) solo rimpiazzare $ con \$ (ovviamente il tuo codice non deve usare il simbolo $ tranne per i nomi di variabili.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  7. #7
    Utente di HTML.it L'avatar di AnubiDk
    Registrato dal
    Jan 2006
    Messaggi
    106
    X le pagine in PHP ho scritto così; ( $pagina è uguale a:" $var = 'world'; echo "Hello $var"; ")



    codice:
    
    $pagina=str_replace('$', '\$', $pagina);
     
    eval($pagina);

    e mi visualizza " Hello $var " ...



    se aggiungo anche un bel:

    codice:
    $pagina=str_replace('"', '\"', $pagina);
    Non mi visualizza proprio niente...

    :rollo:

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.