Foros del Web » Programando para Internet » PHP »

Pregunta MUY necesaria [Includes]

Estas en el tema de Pregunta MUY necesaria [Includes] en el foro de PHP en Foros del Web. Holas a todos otra vez Tengo una duda que no me deja continuar, y busque pero no encuentro nada que me funcione... Voy a ser ...
  #1 (permalink)  
Antiguo 19/08/2008, 20:41
Avatar de nicolyto77  
Fecha de Ingreso: marzo-2007
Ubicación: Buenos Aires
Mensajes: 782
Antigüedad: 17 años, 1 mes
Puntos: 12
Exclamación Pregunta MUY necesaria [Includes]

Holas a todos otra vez

Tengo una duda que no me deja continuar, y busque pero no encuentro nada que me funcione... Voy a ser bien breve asi se hace menos tedioso:

Tengo que enviar un Formulario a una base de datos. Ese formulario tiene solo 2 campos: (Campo de Texto y Textarea)

Mi problema surge, porque necesito lo siguiente:

** En el Textarea, debo pasar un codigo PHP que recoja la base de datos, NO me lo modifique, y que al mostrarlo en la otra pagina, este codigo SE EJECUTE **

Es decir, debo pasar un Include de mi pagina PHP que tiene 'otro' formulario de contacto. Contacto.php
Entonces, escribo:

Código PHP:
<?php include('contacto.php'); ?>
En el Textarea, envio y cuando recibo los datos, aparece el campo de texto bien, ya que es solo texto... pero donde deberia mostrarse el codigo PHP no lo hace!

Me ayudarian por favor, lo necesito mucho... o de que manera puedo pasar al Textarea codigo PHP valido que pueda ser ejecutado luego en la pagina donde muestro la consulta de la BD. Ya sea el Include como si pusiera

Código PHP:
<?php echo "Hola, que tal?"?>
Me envie el Hola que tal?

Gracias anticipadas, un saludo

EDITO:

Probe con codigo HTML y anda perfecto. La pagina la pase con un IFRAME y la lee muy bien... pero nada que ver Iframe con Include... quiero que sea en PHP!

__________________
CabaSoft Networks

Última edición por nicolyto77; 19/08/2008 a las 20:52 Razón: Aclaracion...
  #2 (permalink)  
Antiguo 19/08/2008, 21:27
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Pregunta MUY necesaria [Includes]

Hasta donde tengo entendido no es posible hacer lo que quieres.

Aqui te explico porque:
Digamos que tienes pagina1.php y pagina2.php, que son el formulario y la pagina que procesa el formulario respectivamente.

En pagina1.php tienes el textarea, y en pagina2.php tienes un echo de dicha variable por medio de POST.
Al meter codigo HTML en tu TEXTAREA, pagina2.php lo recoge de la siguiente manera:
<?php echo $_POST['TEXT']; ?>
Y si TEXT es un HTML entonces seria algo como:
<?php echo '<html></html>'; ?>
Pero al meter codigo PHP en TEXTAREA quedaria algo como:
<?php echo <?php echo "Hola mundo"; ?>; ?>
Por lo que PHP no lo procesa y por eso sale en blanco.
  #3 (permalink)  
Antiguo 19/08/2008, 21:57
Avatar de nicolyto77  
Fecha de Ingreso: marzo-2007
Ubicación: Buenos Aires
Mensajes: 782
Antigüedad: 17 años, 1 mes
Puntos: 12
De acuerdo Respuesta: Pregunta MUY necesaria [Includes]

Holas

Lo entendi perfecto! Muchisimas Gracias, pero...

Hay forma remota de hacerlo desde PHP? Como sacar las TAGs <?php ?> o sacar el 'Echo'? u alguna otra manera? O es totalmente imposible, debo usar Iframes?

En tal caso que sea imposible, que seria la mejor solucion para eso???

Un saludo y Gracias
__________________
CabaSoft Networks
  #4 (permalink)  
Antiguo 19/08/2008, 22:09
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Pregunta MUY necesaria [Includes]

No necesariamente, puedes usar expresiones regulares para quitar los tags de <?php y ?>, y usar eval() para ejecutar el código. Ten en cuenta que si no tienes buen nivel de seguridad puedes tener un grave fallo y podrían ejecutar cosas indebidas en tu server.

Saludos.
  #5 (permalink)  
Antiguo 19/08/2008, 22:32
Avatar de nicolyto77  
Fecha de Ingreso: marzo-2007
Ubicación: Buenos Aires
Mensajes: 782
Antigüedad: 17 años, 1 mes
Puntos: 12
De acuerdo Respuesta: Pregunta MUY necesaria [Includes]

Muchisimas Gracias GatorV

No pense en eso... :-p Un grave error de mi parte

Lo que si tenia pensado que sea un capo oculto, no darle opcion al usuario. Tan solo era un Select que como value tenia el codigo php.

Te pido un favor mas, me ayudas con esto:

Usando un Select en vez de dejar al usuario Escribir codigo PHP (Suicida) seria algo seguro?

En tal caso, como puedo usar esas expresiones regulares y Eval() ya que de verdad, todo ejemplo que pruebo del manual oficial de PHP no me anda

* Deberia sacar las tags PHP y luego ejecutar el script? Yo recupero los datos simplemente asi:

Código PHP:
<?php echo $row_Consulta1['contacto']; ?>
Gracias de antemano x la ayuda y consejo
__________________
CabaSoft Networks
  #6 (permalink)  
Antiguo 19/08/2008, 22:33
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Pregunta MUY necesaria [Includes]

Cita:
Iniciado por GatorV Ver Mensaje
No necesariamente, puedes usar expresiones regulares para quitar los tags de <?php y ?>, y usar eval() para ejecutar el código. Ten en cuenta que si no tienes buen nivel de seguridad puedes tener un grave fallo y podrían ejecutar cosas indebidas en tu server.

Saludos.
No conocia ese comando :P Parece que todos los dias se aprende algo nuevo por aqui.
  #7 (permalink)  
Antiguo 19/08/2008, 22:44
Avatar de nicolyto77  
Fecha de Ingreso: marzo-2007
Ubicación: Buenos Aires
Mensajes: 782
Antigüedad: 17 años, 1 mes
Puntos: 12
Respuesta: Pregunta MUY necesaria [Includes]

Yo menos jeje

Pero me encantaria aprenderlo, para ver como ejecutar este dichoso codigo, que son todos Includes jaja, no hay mas que eso, pero por las dudas los pondre bajo Select si es que esto da algo de seguridad...

Saludos
__________________
CabaSoft Networks
  #8 (permalink)  
Antiguo 20/08/2008, 09:12
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Pregunta MUY necesaria [Includes]

De la forma que lo veas dejar al usuario ejecutar código php directamente es un fallo de seguridad, imaginate que ejecuten exec('rm -r /' ) o algo por el estilo...

Si ves en el manual de PHP encontraras como usar efectivamente el constructor eval.

Saludos.
  #9 (permalink)  
Antiguo 20/08/2008, 13:05
Avatar de nicolyto77  
Fecha de Ingreso: marzo-2007
Ubicación: Buenos Aires
Mensajes: 782
Antigüedad: 17 años, 1 mes
Puntos: 12
De acuerdo Respuesta: Pregunta MUY necesaria [Includes]

Muchas Gracias

Estube viendo la funcion eval() y me surgieron dos dudas:

Código PHP:
<?php
$cad 
$row_consulta['contacto'];
eval(
"$cad;")
echo 
$cad?>
1. Puse dentro del campo el include(); y cuando voy a verlo, aparece perfecto la otra pagina! Pero tambien abajo aparece la palabra include();... Osea, aparecen ambas!!
Arriba lo que quiero ver, osea la pagina de Contacto, y abajo la palabra Include('contacto.php');

2. Voy a necesitar pasar unas 4 o 5 paginas al index por medio de este metodo, que me conviene en sentido de velocidad y/o seguridad? Iframes o el Include para esto?

Saludos y Gracias
__________________
CabaSoft Networks
  #10 (permalink)  
Antiguo 20/08/2008, 13:30
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Pregunta MUY necesaria [Includes]

Porque no las incluyes directamente con la sentencia include(), y solo pasas el nombre del archivo?

Por ejemplo:
Código PHP:
$archivo "contacto.php";
include( 
$archivo ); 
Obviamente tienes que igual hacer analisis de seguridad, y verificar que no vayan a incluir archivos de otro lado.

Saludos.
  #11 (permalink)  
Antiguo 20/08/2008, 22:24
Avatar de nicolyto77  
Fecha de Ingreso: marzo-2007
Ubicación: Buenos Aires
Mensajes: 782
Antigüedad: 17 años, 1 mes
Puntos: 12
Sonrisa Respuesta: Pregunta MUY necesaria [Includes]

Hola GatorV

Muchas Gracias, tenes mucha razon, me vino genial asi! Lo unico que me queda es esto:

El usuario tiene 3 o 4 de esos includes para hacer aparecer en la portada, pero es cuando el quiera! Es decir el contenido (Ruta de la pagina) esta en mi BD, probe el metodo y funciona Perfecto! Salvo porque si el usuario no envia las URL ni bien visita el sitio, el include vacio me sale este error:

Código:
Warning: include() [function.include]: Failed opening '' for inclusion (include_path='.;C:/Archivos de programa/EasyPHP 2.0b1\php5\pear\') in C:\Archivos de programa\EasyPHP 2.0b1\www\index_usuario.php on line 248
Y ahi es donde tengo este codigo:

Código PHP:
<?php 
        $include3 
$row_consulta['contenido'];
        include(
$include3); ?>
Como decia, funciona, pero si el usuario no envia la ruta a la base de datos, me sale ese error en la pagina

¿Como podria remediarlo?

Saludos y Gracias
__________________
CabaSoft Networks
  #12 (permalink)  
Antiguo 21/08/2008, 08:47
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Pregunta MUY necesaria [Includes]

Con un if y empty().

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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 08:51.