Foros del Web » Programando para Internet » PHP »

Ejecutar codigo recibido de un formulario

Estas en el tema de Ejecutar codigo recibido de un formulario en el foro de PHP en Foros del Web. Amigos PHP's: la idea es q tengo un formulario donde los usuarios pueden escribir codigo php , lo q quiero saber es como puedo ejecutar ...
  #1 (permalink)  
Antiguo 10/03/2005, 09:05
 
Fecha de Ingreso: febrero-2004
Ubicación: Bogotá, Colombia
Mensajes: 191
Antigüedad: 20 años, 2 meses
Puntos: 1
Ejecutar codigo recibido de un formulario

Amigos PHP's:

la idea es q tengo un formulario donde los usuarios pueden escribir codigo php , lo q quiero saber es como puedo ejecutar ese codigo q me envia el formulario? es decir, tengo ese codigo recibido en una variable, como hago para ejecutarlo?

De antemano, gracias
  #2 (permalink)  
Antiguo 10/03/2005, 09:28
 
Fecha de Ingreso: marzo-2005
Mensajes: 163
Antigüedad: 19 años, 1 mes
Puntos: 0
Lo primero que se me ocurre es escribirlo en un archivo y luego usar un
exec('php '.$nombrearchivo);
Tal ves haya algo mejor.Pero para probar rapidamente puede servir.
Suerte
  #3 (permalink)  
Antiguo 10/03/2005, 09:41
 
Fecha de Ingreso: febrero-2004
Ubicación: Bogotá, Colombia
Mensajes: 191
Antigüedad: 20 años, 2 meses
Puntos: 1
Gracias por responder Martin, bueno ayer mire la sintaxis de la funcion exec, pero no me quedo como muy clara, ya q lo q he hecho con esta funcion es ejecutar comandos de DOS pero no de php, y bueno, acabe de probar la linea q ud sugirio y no me funciono, pero creo q es xq tengo mal la sintaxis.

Agradezco me ayuden con esto

Última edición por Andrecito; 10/03/2005 a las 09:44
  #4 (permalink)  
Antiguo 10/03/2005, 10:02
 
Fecha de Ingreso: marzo-2005
Mensajes: 163
Antigüedad: 19 años, 1 mes
Puntos: 0
Lo que te puse me parece que no tiene error en la sintaxis del exec. El tema es que yo utilizo linux, y de esta forma me anda bien.Por lo que decis usas windows... mmm ahi habria que ver si estamos llamando bien al binario de php en windows.
tal ves debas poner todo el path de donde esta el php.exe
algo asi: exec("c:/asdasd/sasd/php.exe ".$nombrearchivo);

Fijate y contame
Suerte
  #5 (permalink)  
Antiguo 10/03/2005, 10:28
 
Fecha de Ingreso: febrero-2004
Ubicación: Bogotá, Colombia
Mensajes: 191
Antigüedad: 20 años, 2 meses
Puntos: 1
Martin, sí, trabajo con php bajo windows. Y no me arroja nada. Estoy probandolo con un script q ya tengo hecho y no me sale nada. Y cuando pruebo estos comandos en el DOS me sale lo siguiente:

C:\PHP>php prueba.php

Status: 404
Content-type: text/html
X-Powered-By: PHP/4.3.6

No input file specified.

el script prueba.php lo puse en C:/php/ para ver si de pronto era eso no, nada q me sale.

Cuál será el error? o no se podrá de otra manera?
  #6 (permalink)  
Antiguo 10/03/2005, 10:44
 
Fecha de Ingreso: diciembre-2004
Mensajes: 120
Antigüedad: 19 años, 4 meses
Puntos: 0
Has probado simplemente a hacer una redirección al archivo php en el que acabas de escribir la variable?
  #7 (permalink)  
Antiguo 10/03/2005, 11:03
 
Fecha de Ingreso: febrero-2004
Ubicación: Bogotá, Colombia
Mensajes: 191
Antigüedad: 20 años, 2 meses
Puntos: 1
Bueno, pues, me cambia la idea del script. Pero me suena la idea, voy a probarlo a ver q pasa, de todas formas me parece muy vacano poder ejecutarlo con la funcion exec() ojala se pueda,
gracias, flopi
  #8 (permalink)  
Antiguo 10/03/2005, 11:14
 
Fecha de Ingreso: marzo-2005
Mensajes: 163
Antigüedad: 19 años, 1 mes
Puntos: 0
De la forma que lo estas haciendo, lo probee en un servidor window recien y me lo ejecuto bien. Lo probe exactamente igual que vos y me ejecuto el php. No te sabria decir porque no te anduvo. Tiene mucho codigo el archivo prueba.php?
Saludos
  #9 (permalink)  
Antiguo 10/03/2005, 14:35
 
Fecha de Ingreso: febrero-2004
Ubicación: Bogotá, Colombia
Mensajes: 191
Antigüedad: 20 años, 2 meses
Puntos: 1
Martin, no, el script solo tiene como 15 lineas. Estamos igual, yo tampoco sé xq no camina, la sintaxis esta bien y todo. Pero bueno, igual, ya lo hice de la forma q sugirio flopi y funciona perfecto, solo q me quedo la espinita de la funcion exec().
Otra pregunta Martin, cuando yo ejecuto la funcion exec() le envio como parametros $codigo, $un_vector_de_resultados, $variable_no_definida), y lo q hago es imprimir ese vector q me devuelve el resultado de los comandos ejecutados, ahora, cuando solo le envio los comandos ($codigo) como ud lo esta haciendo, entonces q pasa? o q devuelve?
  #10 (permalink)  
Antiguo 11/03/2005, 05:39
 
Fecha de Ingreso: marzo-2005
Mensajes: 163
Antigüedad: 19 años, 1 mes
Puntos: 0
Retorna la ultima linea de la salida de ejecucion de dicho comando. EL tema es que a veces poco interesa el retorno a menos que tengas que hacer algun tipo de control sobre la ejecucion.
Si descubres que fue lo que paso que no andaba usando el exec avisame por favor.
Gracias, saludos
  #11 (permalink)  
Antiguo 11/03/2005, 08:54
 
Fecha de Ingreso: febrero-2004
Ubicación: Bogotá, Colombia
Mensajes: 191
Antigüedad: 20 años, 2 meses
Puntos: 1
Gracias por el interes Martin, pero no, ni idea, deberia funcionar, pero me dice q no especifico una salida, es como si no me reconociera el script o algo asi. Voy a ver como lo resulavo, pero muchas gracias.
  #12 (permalink)  
Antiguo 11/03/2005, 09:00
 
Fecha de Ingreso: febrero-2004
Ubicación: Bogotá, Colombia
Mensajes: 191
Antigüedad: 20 años, 2 meses
Puntos: 1
Martin, es q el problema es q en el servidor si me funciona, pero lo ejecuto en una estacion y me sale el error 404 de salida no especificada
  #13 (permalink)  
Antiguo 11/03/2005, 10:04
 
Fecha de Ingreso: agosto-2002
Ubicación: Colón - Entre Rios - Argentina
Mensajes: 647
Antigüedad: 21 años, 8 meses
Puntos: 8
Andrecito, exec() lo que hace es ejecuta un comando, si le decis que ejecute php.exe $nombrearchivo, tenes que crear un archivo temporal (esa es una solucion) con tmpfile(), por ejemplo....
http://ar2.php.net/tmpfile

Por otro lado para lo que intentas hacer existe una funcion especifica y es eval(). Ahi te ahorras varios problemas.
http://ar2.php.net/eval

Te advierto tambien que lo que ententas hacer suena suicida, bueno .... a menos que tomes ciertos recaudos como "filtrar" el codigo que viene desde el formulario. Es que de lo contrario, cualquier persona con ganas de hacer daño (y si que las hay) puede meter cosas extrañas y tirarte el sitio.

Mi humilde consejo es que no lo hagas.

Saludos!
  #14 (permalink)  
Antiguo 11/03/2005, 10:15
 
Fecha de Ingreso: febrero-2004
Ubicación: Bogotá, Colombia
Mensajes: 191
Antigüedad: 20 años, 2 meses
Puntos: 1
Si, se q es peligroso, pero como es para una LAN pues no creo q nos vayamos a bajar el sitio entre nosotros mismos, voy a mirar la funcion eval, para ver si me puede servir y muchas gracias por el consejo, viejo
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:22.