Foros del Web » Programando para Internet » PHP »

problemas con eval(), ayuda por favor :)

Estas en el tema de problemas con eval(), ayuda por favor :) en el foro de PHP en Foros del Web. saludos amigos, el caso es el siguiente: quiero usar un sistema de templates con PHP y MySQL, cuando guardo el template en la DB tal ...
  #1 (permalink)  
Antiguo 04/07/2007, 00:12
 
Fecha de Ingreso: julio-2007
Mensajes: 3
Antigüedad: 12 años, 7 meses
Puntos: 0
Pregunta problemas con eval(), ayuda por favor :)

saludos amigos, el caso es el siguiente:

quiero usar un sistema de templates con PHP y MySQL, cuando guardo el template en la DB tal y como se muestra aqui:

Código HTML:
<body bgcolor="black" text="white"> 
y usando la siguiente funcion en donde quiero que se imprima el codigo tal y como esta a continuacion:

Código PHP:
function fetchTemplate ($templateName
        {
        
$Query "select content from templates where name='$templateName'";
        
$tRes mysql_query($Query);
        
$Template mysql_fetch_array($tRes);
        
$Content "echo \"$Template[content]\";"
             return 
$Content;
        }


function 
pageHeader($pageTitle
        {
           eval (
fetchTemplate("page_header"));
        } 
me da este error:

Parse error: parse error, unexpected T_STRING, expecting ',' or ';' in C:\AppServ\www\x\functions.php(60) : eval()'d code on line 5

PD la linea 60 corresponde a la parte de:

Código PHP:
eval (fetchTemplate("page_header")); 
el problema no ocurre si le añado el caracter de escape \ en la declaracion de los atributos en el campo de la tabla a donde guardo el template
Código HTML:
<body bgcolor=\"black\" text=\"white\"> 
podrian darme pistas para resolver el problema? muchas gracias
  #2 (permalink)  
Antiguo 04/07/2007, 09:46
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Re: problemas con eval(), ayuda por favor :)

Pues ya lo resolviste: las comillas en la cadena hacen que php la considere "de a partes". La solución que te propongo es usar las comillas simples en vez de las dobles para delimitar cuando sea posible, y/o usar addslashes() con la cadena que traés de la base de datos (o mejor aún, usar addslashes al momento de guardar en la base de datos).


Saludos.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:10.