Ver Mensaje Individual
  #1 (permalink)  
Antiguo 10/03/2011, 02:08
PYTUFYN
 
Fecha de Ingreso: junio-2003
Mensajes: 104
Antigüedad: 21 años, 6 meses
Puntos: 0
Ejecutar código PHP contenido en un campo de MySQL | Uso de eval();

Hola a tod@s.

Veréis, en el registro del campo "contenido" de mi tabla "articulos" inserto desde el formulario de mi panel de administración a la base de datos un código PHP (en concreto un include), por ejemplo:

Cita:
TextoTextoTexto

<? include('loquesea.php'); ?>

TextoTextoTexto
Entonces claro, con un

Código PHP:
echo $contenido
El include que hay no se ejecuta, quedando tal que así:

TextoTextoTexto

TextoTextoTexto


Para solucionar esto, lo que he hecho es

Código PHP:
<?php
eval('?>' $contenido '<?');
?>
De este modo ya sí que me ejecuta el include correctamente.

Pero he leído por ahí que el empleo de el eval(); puede ser un gran riesgo en la seguridad. ¿En este caso lo sería? y en caso afirmativo alguien me podría explicar por qué?

El formulario que ingresa los datos (el include entre el texto en este caso) en la DB obviamente es de uso exlusivo desde el panel de administración y el eval(); solamente muestra el registro de un solo campo. O sea que no hay ningún formulario para uso de cualquier usuario desde el que puedan enviar código PHP para su posterior ejecución en la página.

¿Habría alguna otra alternativa de poder ejecutar ese include(); contenido en un campo de la base de datos sin usar eval();?

Espero que se haya entendido mi mensaje.

Un saludo!

Última edición por PYTUFYN; 10/03/2011 a las 02:13