Visualizzazione risultati 1 fino 26 di 26

Discussione: Esecutore PHP

  1. #1
    tryhere non è connesso AlterVistiano
    Data registrazione
    19-09-2007
    Messaggi
    757

    Predefinito Esecutore PHP

    Ho trovato questa applicazione molto interessante (spero non sia un problema il link a siti esterni, in tal caso prego chi di dovere di rimuoverlo).
    Questo consente di visualizzare l'output prodotto da un codice php.
    Vorrei creare una cosa simile, ma dividendo la pagina in due colonne, in modo da poter modificare il codice visualizzato nella colonna di sinistra, vedendone l'output a destra (come un debugger). Il tutto si potrebbe realizzare in AJAX, ma è solo un'idea.
    Mi aiutate a realizzarlo? Niente grafica splendida o simili, è solo per scopo didattico e curiosità...

  2. #2
    Data registrazione
    04-09-2009
    Messaggi
    183

    Predefinito

    Beh se è solo in PHP e non in tutti i linguaggi che sono indicati in quel sito forse basterebbe che tu creassi la pagina con il codice e poi la includessi, ma forse ci potrebbero essere problemi di compatibilità di variabili (in questo caso nel codice del tuo elaboratore le variabili dovrebbero avere nomi lunghi e incomprensibili ).
    Age Of Empires GIF Creator & Archive
    New! Blog informatico di scripting PHP avanzato
    Vuoi giocare online a Age of Empires The Conquerors? -> Usa Voobly !! (MSN Zone non lo supporta più dal 19 giugno 2006)
    Il mio clan di The Conquerors -> Rifugio dei Conquerors
    Il mio stato su Xfire Live Video -> Unreal Tournament 2004
    Facebook MMORPG

  3. #3
    Guest

    Predefinito

    Basta usare correttamente eval.

  4. #4
    tryhere non è connesso AlterVistiano
    Data registrazione
    19-09-2007
    Messaggi
    757

    Predefinito

    Esatto pensavo di usare eval e con AJAX visualizzare l'output della pagina nella stessa pagina in cui inserisco il codice...come posso fare?

  5. #5
    Guest

    Predefinito

    Se usi jquery è abbastanza facile fare richiesta ajax.

  6. #6
    tryhere non è connesso AlterVistiano
    Data registrazione
    19-09-2007
    Messaggi
    757

    Predefinito

    Ho scaricato jQuery. Lo includo come script javascript. Poi come costruisco l'"esecutore"?

  7. #7
    Guest

    Predefinito

    Leggendo la documentazione. http://docs.jquery.com/Ajax

    E' utile copiarti l'esempio che già c'è lì, basta leggerselo.

  8. #8
    tryhere non è connesso AlterVistiano
    Data registrazione
    19-09-2007
    Messaggi
    757

    Predefinito

    Ci sono vari esempi di caricamento di una pagina all'interno della propria pagina ma niente che prende i contenuti da una casella di testo nella stessa pagina...

  9. #9
    L'avatar di andreafallico
    andreafallico non è connesso Super Moderatore
    Data registrazione
    02-06-2009
    Messaggi
    1,981

    Predefinito

    Citazione Originalmente inviato da tryhere Visualizza messaggio
    Ci sono vari esempi di caricamento di una pagina all'interno della propria pagina ma niente che prende i contenuti da una casella di testo nella stessa pagina...
    In jQuery per prendere i contenuti da una casella di testo nella stessa pagina puoi fare così:
    Codice HTML:
    ...
    ...
    <input type="text" id="txt" name="testo" />
    ...
    ...
    per prelevare il valore
    Codice HTML:
    <script type="text/javascript">
    //<![CDATA[
    var valueTesto = $('#txt').val();
    //]]>
    </script>
    oppure
    Codice HTML:
    <script type="text/javascript">
    //<![CDATA[
    var valueTesto = $('#txt').attr('value');
    //]]>
    </script>

  10. #10
    tryhere non è connesso AlterVistiano
    Data registrazione
    19-09-2007
    Messaggi
    757

    Predefinito

    la parte per prelevare il valore dove la inserisco?
    altra cosa...se anzichè inserire nel div quello che l'utente inserisce nella casella di testo volessi prima elaborarlo con PHP?

  11. #11
    Guest

    Predefinito

    Scusate, vorrei sapere una cosa pure io visto che siamo argomento.
    Come fa con PHP quel sito ed Ajax ad eseguire un programma in C??
    Grazie mille! xD

  12. #12
    L'avatar di andreafallico
    andreafallico non è connesso Super Moderatore
    Data registrazione
    02-06-2009
    Messaggi
    1,981

    Predefinito

    Prima crei la pagina che deve elaborare il PHP, fai una cosa del genere:
    esegui.php
    Codice PHP:
    <?php
    $code
    = $_POST['code'];
    if(
    controlloCodice($code)){
    qui elabori il codice
    }

    function
    controlloCodice($code){
    qui fai un controllo del codice se corretto,
    oppure limitare l 'esecuzione solo di alcune funzioni
    }
    ?>
    invece per il form puoi fare:
    invio.html
    Codice HTML:
    <html>
    <head>
    <script language="JavaScript" type="text/JavaScript" src="jquery.js"></script>
    <script type="text/javascript">
    //<![CDATA[
    function funzione(){
    var code = $('#code').attr('value');
    var result = $.ajax({async: false, url: 'esegui.php', type: 'POST', data: 'code=' + code, 
    dataType: 'text', cache: false}).responseText;
    $('#result').eq(0).html(result);
    return false;
    }
    //]]>
    </script>
    </head>
    <body>
    <form action="" onsubmit="return funzione();">
    <textarea rows="4" cols="20" id="code" name="code"></textarea>
    <input type="submit" value="Esegui" />
    </form>
    <div id="result"></div>
    </body>
    </html>

  13. #13
    tryhere non è connesso AlterVistiano
    Data registrazione
    19-09-2007
    Messaggi
    757

    Predefinito

    index.php:
    Codice PHP:
    <html>
    <
    head>
    <
    script language="JavaScript" type="text/JavaScript" src="jquery.js"></script>
    <script type="text/javascript">
    //<![CDATA[
    function funzione(){
    var code = $('#code').attr('value');
    var result = $.ajax({async: false, url: 'run.php', type: 'POST', data: 'code=' + code, dataType: 'text', cache: false}).responseText;
    $('#output').eq(0).html(result);
    return false;
    }
    //]]>
    </script>
    </head>
    <body>
    <form action="" onsubmit="return funzione();">
    <textarea rows="4" cols="20" id="code" name="code"></textarea>
    <input type="submit" value="Esegui" />
    </form>
    <div id="output"></div>
    </body>
    </html>
    run.php:
    Codice PHP:
    <?php
    $code
    = $_POST['code'];
    $code.="ciao";
    ?>
    Quando la eseguo non viene prodotto nessun output...manca qualcosa nella run.php?

  14. #14
    L'avatar di andreafallico
    andreafallico non è connesso Super Moderatore
    Data registrazione
    02-06-2009
    Messaggi
    1,981

    Predefinito

    Nel file run.php devi mettere
    Codice PHP:
    <?php
    $code
    = $_POST['code'];
    $code.="ciao";
    echo
    $code;
    ?>
    e poi devi mettere il percorso giusto del file che hai scaricato jQuery.1.3.2.js
    Codice:
    <html>
    <head>
    <script language="JavaScript" type="text/JavaScript" src="jquery.js"></script>

  15. #15
    tryhere non è connesso AlterVistiano
    Data registrazione
    19-09-2007
    Messaggi
    757

    Predefinito

    splendido! =)
    se ora volessi interpretare il codice php inserito nella casella di testo e scriverne sotto l'output con eval?

  16. #16
    L'avatar di andreafallico
    andreafallico non è connesso Super Moderatore
    Data registrazione
    02-06-2009
    Messaggi
    1,981

    Predefinito

    Come ti ho detto prima run.php deve essere così:
    Codice PHP:
    <?php
    $code
    = $_POST['code'];
    if(
    controlloCodice($code)){
    eval(
    $code);
    }

    function
    controlloCodice($code){
    qui fai un controllo del codice se corretto,
    oppure limitare l esecuzione solo di alcune funzioni (bloccare alcune funzioni),
    devi controllare soprattutto la sintassi, ecc...
    }
    ?>
    Studiati bene la funzione eval().
    Ultima modifica di andreafallico : 19-12-2009 alle ore 17.22.42

  17. #17
    Guest

    Predefinito

    Citazione Originalmente inviato da sIM Visualizza messaggio
    Scusate, vorrei sapere una cosa pure io visto che siamo argomento.
    Come fa con PHP quel sito ed Ajax ad eseguire un programma in C??
    Grazie mille! xD
    Il sito sta su un server, il server ha il compilatore C, il compilatore C lo puoi richiamare da PHP. Basta avere i permessi giusti.

    p.s. Su quel sito non c'è niente in ajax.

    Citazione Originalmente inviato da tryhere Visualizza messaggio
    splendido! =)
    se ora volessi interpretare il codice php inserito nella casella di testo e scriverne sotto l'output con eval?
    Hai mai provato a scrivere qualcosa prima che qualcuno ti posti la soluzione pronta per un copy-paste?
    Ultima modifica di stoner : 19-12-2009 alle ore 17.21.10

  18. #18
    tryhere non è connesso AlterVistiano
    Data registrazione
    19-09-2007
    Messaggi
    757

    Predefinito

    Infatti il mio problema è sull'uso di eval:
    rin.php:
    Codice PHP:
    <?php
    $code
    =$_POST['code'];
    eval(
    "\$code=\"$code\";");
    echo
    $code;
    ?>
    errore:
    Parse error: parse error eval()'d code on line 2

  19. #19
    L'avatar di mycarlo
    mycarlo non è connesso Utente attivo
    Data registrazione
    06-10-2009
    Residenza
    $this->s50
    Messaggi
    467

    Predefinito

    Invece di fare così tanti escape con eval ti conviene usare gli apici.

    Codice PHP:
    <?php
    $code
    =$_POST['code'];
    eval(
    '$code="' . $code . '";');
    // anche
    eval('$code="{$code}";');
    echo
    $code;
    ?>
    Ultima modifica di mycarlo : 19-12-2009 alle ore 17.36.23

  20. #20
    L'avatar di andreafallico
    andreafallico non è connesso Super Moderatore
    Data registrazione
    02-06-2009
    Messaggi
    1,981

    Predefinito

    Citazione Originalmente inviato da tryhere Visualizza messaggio
    Infatti il mio problema è sull'uso di eval:
    rin.php:
    Codice PHP:
    <?php
    $code
    =$_POST['code'];
    eval(
    "\$code=\"$code\";");
    echo
    $code;
    ?>
    errore:
    Parse error: parse error eval()'d code on line 2

    Citazione Originalmente inviato da mycarlo Visualizza messaggio
    Invece di fare così tanti escape con escape ti conviene usare gli apici.

    Codice PHP:
    <?php
    $code
    =$_POST['code'];
    eval(
    '$code="' . $code . '";');
    // anche
    eval('$code="{$code}";');
    echo
    $code;
    ?>
    Studiate prima di scrivere, eval.

  21. #21
    tryhere non è connesso AlterVistiano
    Data registrazione
    19-09-2007
    Messaggi
    757

    Predefinito

    Ok, grazie della segnalazione. Ma non funziona lo stesso.

  22. #22
    Guest

    Predefinito

    ti basta fare eval($code). Ma comunque il codice che esegui è da ""validare"".

  23. #23
    tryhere non è connesso AlterVistiano
    Data registrazione
    19-09-2007
    Messaggi
    757

    Predefinito

    Codice PHP:
    $code=$_POST['code'];
    eval(
    $code);
    echo
    $code;
    produce lo stesso errore...
    comunque per validarlo esiste una funzione di php? perchè tanto in caso di errori dovrebbero essere stampati a video no?

  24. #24
    L'avatar di mycarlo
    mycarlo non è connesso Utente attivo
    Data registrazione
    06-10-2009
    Residenza
    $this->s50
    Messaggi
    467

    Predefinito

    Citazione Originalmente inviato da andreafallico Visualizza messaggio
    Studiate prima di scrivere, eval.
    In realtà mi ha fatto confondere!

    Citazione Originalmente inviato da tryhere Visualizza messaggio
    Codice PHP:
    $code=$_POST['code'];
    eval(
    $code);
    echo
    $code;
    produce lo stesso errore...
    comunque per validarlo esiste una funzione di php? perchè tanto in caso di errori dovrebbero essere stampati a video no?
    Per adesso ho trovato: php_check_syntax

    Ma funziona per solo per i files, vedi fra gli esempi in fondo alla pagina dovresti trovare qualcosa...

  25. #25
    tryhere non è connesso AlterVistiano
    Data registrazione
    19-09-2007
    Messaggi
    757

    Predefinito

    capito dove stava il problema...nel codice da validare non devo mettere <?php ?>.
    tutto risolto. grazie a tutti

  26. #26
    L'avatar di andreafallico
    andreafallico non è connesso Super Moderatore
    Data registrazione
    02-06-2009
    Messaggi
    1,981

    Predefinito

    Per esempio qui, la funzione eval e limitata solo ad alcune funzioni PHP.

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •