Problema con eval()...

  • Creatore Discussione Creatore Discussione matador
  • Data di inizio Data di inizio

matador

Utente Attivo
26 Nov 2011
68
0
0
Ciao a tutti, da poco ho ricominciato a lavorare al mio sito, e come al solito non va' mai tutto liscio...
Come da titolo il mio problema sta' nella funzione eval() che nonostante le tante ricerche per la guida all'uso,
non sono riuscito a capirci molto... vi spiego subito il problema.
La mia intenzione era quella di inserire codice HTML del Sito su DataBase, in modo da realizzare una sorta di Pannello Admin,
dove posso modificare il tutto grazie ad un Form TextArea.
Tutto liscio, il pannello funziona, ma il problema sorge quando vado ad inserire il Codice PHP.
Dall'Index, richiamo il codice HTML dal DataBase in questo modo:

Una volta selezionato il Campo dal DataBase, lo scrivo in echo().
Codice:
echo $row[HTMLCODE'];

Quindi andando ad inserire codici PHP, mi sono accorto che stavo facendo una cosa del genere:
Codice:
echo (" <?php ?> ");
E dopo tante ricerche ho capito che dovevo usare eval() (Forse... :dipser:)
Ma non ho capito come fare, nonostante tante prove non sono riuscito a inserire codice PHP nella stringa dal DataBase...
Codice:
eval $row[HTMLCODE'];
Con questo code, funge l'HTML, ma il PHP continua a rimanere vuoto...
Grazie 1000 a tutti, ho imparato tanto da MrWebMaster, ma non ho mai avuto la necessita di registrarmi al Forum.
Spero di trovarmi bene, Ciau ;) And HELP ME! :dipser:
 
Il codice, se ricordo bene, non deve contenere i tag di apertura e chiusura. Prova così:
PHP:
<?php
$code = $row['HTMLCODE'];

if (strpos($code, '<?php') === 0) {
    $code = substr($code, 5);
}

if (substr($code, 0, -2) == '?>') {
    $code = substr($code, 0, -2);
}

eval($code);
Il problema è che se inserisci codice HTML lo script smetterà di funzionare... Ti serve un campo in cui sia specificato se il codice è HTML o PHP. Se è HTML lo visualizzi, se è PHP lo esegui.
 
Il codice, se ricordo bene, non deve contenere i tag di apertura e chiusura. Prova così:
PHP:
<?php
$code = $row['HTMLCODE'];

if (strpos($code, '<?php') === 0) {
    $code = substr($code, 5);
}

if (substr($code, 0, -2) == '?>') {
    $code = substr($code, 0, -2);
}

eval($code);
Il problema è che se inserisci codice HTML lo script smetterà di funzionare... Ti serve un campo in cui sia specificato se il codice è HTML o PHP. Se è HTML lo visualizzi, se è PHP lo esegui.

Grazie per la tua risposta Alessandro, anche se il code non so' per quale motivo non funge.
Adesso nemmeno l'HTML mi legge... Soluzioni? :dipser:
 
Si scusa non me ne ero accorto dell'error_log, eccoti gli errori:


PHP Parse error: syntax error, unexpected '<' in /home//public_html/index.php(149) : eval()'d code on line 1
PHP Parse error: syntax error, unexpected T_STRING in /home//public_html/index.php(149) : eval()'d code on line 1
PHP Parse error: syntax error, unexpected T_STRING in /home//public_html/index.php(149) : eval()'d code on line 1


Stringa 149:
Codice:
eval($code);
 
Oddio... giuro non ho capito...
Ho letto e riletto il codice, ma non riesco a capire... :book:
Ho inserito il tuo code cosi' com'e' :(
 

Discussioni simili