Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    [Aiuto PHP-MySQL] Come eseguire codice php inserito dentro tabella mysql

    il titolo dice già tutto

    Mettiamo cosa che io abbia un testo inserito dentro una tab, bene ora voglio leggere questo testo accedendo al db e lo voglio stampare sulla pagina.
    Ma se io ad un certo punto del testo volessi inserire del codice php, direttamente dentro il campo testo della mia tabella e voglio far si che venga poi eseguito, come posso fare?

    Inoltre...

    Ho un testo dentro ad un record di una tab mysql, bene questo testo può presentare ovunque questa struttura:

    Lore ipsum bla bla bla......
    [ code ]
    codice php da eseguire
    [ /code ]
    altro testo alla cavolo... e di nuovo:
    [ code ]
    codice php da eseguire
    [ /code ]

    (senza gli spazi logicamente)
    Come posso isolare le parti di testo (quelle in php) interessate, così da poi farle eseguire? stavo pensando ad una regex ma bho..

    Help Me!

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Penso non si possa fare, il codice verrà visto come semplice testo.

  3. #3
    Originariamente inviato da Alhazred
    Penso non si possa fare, il codice verrà visto come semplice testo.
    Quoto

  4. #4
    sicuramente si può fare visto che molti cms fanno proprio questo, il modo di farlo però non so indicartelo esattamente.

    dovresti provare con un buffer, io di solito uso questa tecnica con i file

    Codice PHP:

    $db_field 
    = .....; //variabile contenente html + php

    ob_start();
    echo 
    $db_field;
    $out ob_get_contents();
    ob_end_clean();
    echo 
    $out//qua in teoria dovresti trovarti il codice php eseguito 
    Ubuntu rulez!! :P

  5. #5

    C'è qualcosa che non va...

    Uhmm niente, c'è qualcosa che non va
    Codice PHP:
    <?php    
    include_once('config.php');
         
    $mysql connect_database();
          
    $query "SELECT * FROM `articoli_home`;";
          
    $result mysql_query($query,$mysql);
          while (
    $row mysql_fetch_array($result)) {
          
    $html "";
          
    $html .= "<div class=\"article\">";
          
    $html .= "<h2>".$row['title']."</h2>";
          
    $html .= "<p class=\"infopost\">Posted <span class=\"date\">on ".$row['data']."</span> by <a href=\"#\">".$row['user']."</a></p>";
          
    $html .= "<div class=\"clr\"></div>";
          if (
    strlen($row['img']) > 0){$html .= "<div class=\"img\"><img src=\"".$row['img']."\" width=\"184\" height=\"194\" class=\"fl\" /></div><div class=\"post_content\">";}
          
    $html .= "<font color=\"black\">".$row['text']."</font>";
          if (
    strlen($row['img']) > 0){$html .= "</div>";}
          
    $html .= "<div class=\"clr\"></div>";
          
    $html .= "</div>";
          echo 
    $html;
          }
    ?>
    Io utilizzo questo script per recuperare da un db MySql degli articoli per la home di un sito.
    Bene pensavo di utilizzare un sistema simile anche per le altre pagine, in cui però mi serviranno pezzi di codice.

    Per fare ciò avevo pensato di inserire nel db tra gli articoli una cosa simile:
    Codice PHP:
    Testo dell articolo....
    code ]
    include_once(
    'config.php');
    $mysql connect_database();
    $query "SELECT * FROM `source_codes` WHERE `id` = 6;";
    $result mysql_query($query,$mysql);
    while (
    $row mysql_fetch_array($result)) {
    echo 
    $row['code'];
    }
    [ /
    code ]
    Altro testo e poi magari altro codice... 
    E una volta riconosciuto grazie alla Regex, eliminare i tag [ code ] ed eseguirlo, così da recuperare il source in questione che è contenuto in un' altra tabella

    So che è da matti..

  6. #6
    allora ho provato quello che ti ho scritto ieri ma effettivamente non funziona, la soluzione è quella di mettere il codice in un file e poi farne l'include
    Ubuntu rulez!! :P

  7. #7
    Utente di HTML.it L'avatar di Luke70
    Registrato dal
    Jul 1999
    Messaggi
    767
    Non funziona come avete proposto perchè la funzione echo non esegue codice, lo stampa e basta.
    C'è una funzione specifica per quello che ti serve: eval()
    http://www.php.net/manual/en/function.eval.php

    Ci sono molti problemi di sicurezza di cui tenere conto però

  8. #8
    eh infatti per quello non gliel'ho consigliata.. comunque il metodo dell'inclusione di un file (anche temporaneo) funziona
    Ubuntu rulez!! :P

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.