Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    361

    esecuzione comando dentro a database

    ciao
    ho una tabella dove sono contenuti porzioni della mia pagina html.

    Codice PHP:
    $result=mysql_query($sql); #eseguo la query
                  
    if (!$result) {
                     die(
    'Invalid query: ' mysql_error()); #controllo che la query non generi errori
                  
    }

                  while (
    $riga mysql_fetch_assoc($result)) { #ricorsione per tutti i record restituiti dalla query
                      
    echo $riga['campo' ]; #scrivo il valore del record
                  

    il fatto è che dentro al campo che seleziono, ci sono scritti anche dei comandi php, che però nn mi vengono eseguiti, me li ritrovo in chiaro nella pagina html finale.
    Esiste un metodo per far eseguire anche quei comandi?
    grazie in anticipo

  2. #2
    Se il codice php è all'interno di una pagina php e all'interno dei simboli <?php ?> è impossibile che si veda in chiaro a meno che il server non interpreti il php...

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    361
    il codice php è all'interno di una query che visualizzo con un echo.

  4. #4

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    361
    purtroppo mi è difficile fare il debug.

    ho letto la documentazione.

    ho modificato il codice così

    Codice PHP:
    $result=mysql_query($sql); #eseguo la query
                  
    if (!$result) {
                     die(
    'Invalid query: ' mysql_error()); #controllo che la query non generi errori
                  
    }

                  while (
    $riga mysql_fetch_assoc($result)) { #ricorsione per tutti i record restituiti dalla query
                      
    eval(echo $riga[$_SESSION['lingua'] ]); #scrivo il valore del record
                  

    ma ora restituisce pagina bianca.

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    361
    ok, ho letto meglio.
    ora il mio codice è così
    Codice PHP:
    $result=mysql_query($sql); #eseguo la query
                  
    if (!$result) {
                     die(
    'Invalid query: ' mysql_error()); #controllo che la query non generi errori
                  
    }

                  while (
    $riga mysql_fetch_assoc($result)) { #ricorsione per tutti i record restituiti dalla query
                      
    $eseguimi $riga[$_SESSION['lingua'] ];
                      eval(
    "\$eseguimi = \"$eseguimi\";"); #scrivo il valore del record
                      
    echo $eseguimi;
                  } 
    ma ancora nn esegue il codice all'interno del db .
    vedo ancora stampati i comandi php.

  7. #7
    non so che codice hai. Ti posto un esempio. Provalo.
    codice:
    <?php
    $eseguimi = 'for($i = 0; $i <= 10; $i++) {
                     echo "Ciao $i 
    ";  }; ' ;
                      
    // prova con il codice
    eval('for($i = 0; $i <= 10; $i++) {
          echo "Ciao $i 
    ";  }; ' ) ;
    
    // prova con la variabile
    echo eval("$eseguimi");
    
    echo "
     $eseguimi";
    
    ?>

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    361
    cavolo propio non riesco.
    per aiutarti ti spiego com'è il mio dato:
    ho una semplicissima tabella dove inserisco il testo del sito in due campi
    -italiano
    -inglese

    per tutte le pagine, tranne una, questo testo è semplice testo con la sola formattazione html.

    la main page contiene invece anche altre cose, quindi il testo del campo contiene sia codice html, che qualche comando php.

    se ho capito il funzionamento di eval, essa dovrebbe prendere in pasto il mio campo(codice html + php) , considerarlo come una pagina php da eseguire, eseguirla, e restituirmi la pagina html finale che poi andrò a visualizzare.

    ma nn mi è chiaro come fare ciò

    Codice PHP:
    $eseguimi $riga[$_SESSION['lingua'] ]; 
    è il mio campo con dentro il testo e alcuni comandi php.

    adesso dovrei dire al motore php di non visualizzarmelo e basta , ma di eseguire gli ulteriori comandi php, e poi visualizzarli.

    ho tentato a scrivere
    Codice PHP:
    echo eval("$eseguimi"
    ma in questo caso non visualizza nulla.

  9. #9
    dipende dalle apici e dal contenuto.

    ti ho postato due esempi.... non so che hai dentro il db e come e' formata la stringa contenuta in $riga[$_SESSION['lingua']....

    la variabile deve contenere la stringa tra apici singole, in modo che non venga parsato il contenuto, eval() dovra' contenere la variabili tra apici doppie per parsare il contenuto.

    Forse ricevi errori che non visualizzi per via dell'impostazione del php.ini... prova ad abilitare la stampa degli errori e dei NOTICE.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

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.