Foros del Web » Programando para Internet » PHP »

Se puede autoejecutar un Script después de haber sido creado?

Estas en el tema de Se puede autoejecutar un Script después de haber sido creado? en el foro de PHP en Foros del Web. Por ejemplo, creamos un script php con "fopen"... Se puede autoejecutar él mismo después de crearlo?...
  #1 (permalink)  
Antiguo 06/03/2014, 11:17
 
Fecha de Ingreso: febrero-2013
Mensajes: 119
Antigüedad: 11 años, 1 mes
Puntos: 2
Se puede autoejecutar un Script después de haber sido creado?

Por ejemplo, creamos un script php con "fopen"... Se puede autoejecutar él mismo después de crearlo?
  #2 (permalink)  
Antiguo 06/03/2014, 11:19
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Se puede autoejecutar un Script después de haber sido creado?

Claro, si dicho script ya está presente en el sistema de archivos lo puedes incluir como cualquier otro.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 06/03/2014, 11:28
 
Fecha de Ingreso: febrero-2013
Mensajes: 119
Antigüedad: 11 años, 1 mes
Puntos: 2
Respuesta: Se puede autoejecutar un Script después de haber sido creado?

Cita:
Iniciado por pateketrueke Ver Mensaje
Claro, si dicho script ya está presente en el sistema de archivos lo puedes incluir como cualquier otro.
No pero el problema es el siguiente:

Un servidor me envía un POST a un Script mío, y mi Script envía otro POST a otro sitio, el caso es que le devuelve error, aunque mi POST es enviado correctamente...

Entonces estoy intentando evitar esto, para ello creo otro fichero PHP a parte con el código del POST. Lo que me falta es que se ejecute el fichero creado solo... Te resumo los pasos:

1. Servidor me envía un POST a mi Script.
2. Mi Script recibe el POST, procesa los datos del POST y crea un fichero PHP preparado para enviar el POST.
3. Me falta que ese fichero se autoejecute independientemente del anterior.

Si utilizo un include, devolverá error al servidor que me envió el primer POST.

Me estoy volviendo loco... Sugerencias? Gracias.
  #4 (permalink)  
Antiguo 06/03/2014, 11:38
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Se puede autoejecutar un Script después de haber sido creado?

¿Y cómo esperas ejecutar dicho script sin incluirlo?

Es decir, ya sea evaluando el script (no recomendado) o incluyéndolo es la única forma que hay de ejecutarlo.

Tal vez estás pensado mal la solución.

Generar un script y luego ejecutarlo es lo mismo que ejecutar las mismas instrucciones sin crear ningún archivo, sería bueno que muestres que hace dicho script, de otra forma no se entiende tu objetivo.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 06/03/2014, 11:44
 
Fecha de Ingreso: febrero-2013
Mensajes: 119
Antigüedad: 11 años, 1 mes
Puntos: 2
Respuesta: Se puede autoejecutar un Script después de haber sido creado?

Cita:
Iniciado por pateketrueke Ver Mensaje
¿Y cómo esperas ejecutar dicho script sin incluirlo?

Es decir, ya sea evaluando el script (no recomendado) o incluyéndolo es la única forma que hay de ejecutarlo.

Tal vez estás pensado mal la solución.

Generar un script y luego ejecutarlo es lo mismo que ejecutar las mismas instrucciones sin crear ningún archivo, sería bueno que muestres que hace dicho script, de otra forma no se entiende tu objetivo.
Te cuento:

Código:
$fp = fopen($fechax.'.php', "a") or die("Couldn't open file for writing!"); 
fwrite($fp,
	"<?php"."\n".
		"\$url = 'URL DE DESTINO DE MI POST';"."\n".
		"\$data = array('usr_id' => '0', 'telf' => '".$smsfrom."', 'fecha' => 'nodate', 'telf_dstn' => '".$callto."');"."\n".
		"\$options = array(
				'http' => array(
				'header'  => 'Content-type: application/x-www-form-urlencoded\r\n' .
							 'Authorization: Basic ' . base64_encode('USER:PASS'),
				'method'  => 'POST',
				'content' => http_build_query(\$data),
				),
			);"."\n".
		"\$context = stream_context_create(\$options);"."\n".
		"\$result = file_get_contents(\$url, false, \$context);"."\n".
		"?>"
	)	
	or die("Couldn't write to file!"); 	
	fclose($fp);
Se genera el fichero PHP con esas instrucciones. De esa forma, el Script devolverá al POST enviado por el servidor, una respuesta correcta.

Si en vez de generar un fichero PHP, incluyera lo que hace el fichero generado, devolvería error al Servidor.

Lo que intento es que el fichero PHP que recibe el POST, le devuelva un OK al servidor así no da error. Y que mi POST, se envíe de forma independiente...

Si sabes alguna forma de devolverle un OK al servidor antes de que se ejecute el script u otra opción, sería de mucha ayuda... Gracias
  #6 (permalink)  
Antiguo 06/03/2014, 11:48
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Se puede autoejecutar un Script después de haber sido creado?

Cita:
Si en vez de generar un fichero PHP, incluyera lo que hace el fichero generado, devolvería error al Servidor.
Eso que dices carece totalmente de sentido, como sea es el mismo código, ya sea lo ejecutes o lo incluyas después de generarlo.

¿Crees que al ejecutar dicho archivo generado no producirá error alguno?

Es el mismo código, el mismo contexto, exactamente el mismo problema.

Te sugiero estudiar un poco cómo es que funciona PHP al respecto.

No es necesario ningún archivo mágico adicional.

Tu problema es otro.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 06/03/2014, 11:51
 
Fecha de Ingreso: febrero-2013
Mensajes: 119
Antigüedad: 11 años, 1 mes
Puntos: 2
Respuesta: Se puede autoejecutar un Script después de haber sido creado?

Cita:
Iniciado por pateketrueke Ver Mensaje
Eso que dices carece totalmente de sentido, como sea es el mismo código, ya sea lo ejecutes o lo incluyas después de generarlo.

¿Crees que al ejecutar dicho archivo generado no producirá error alguno?

Es el mismo código, el mismo contexto, exactamente el mismo problema.

Te sugiero estudiar un poco cómo es que funciona PHP al respecto.

No es necesario ningún archivo mágico adicional.

Tu problema es otro.
A ver, sé que al incluir un Script PHP, lo estás ejecutando porque incluyes el código en el Script que lo llama, por eso mismo es por lo que me falla. Lo que pregunto es si es posible ejecutar otro que sea independiente del primero, que no le devuelve respuesta al primero ni nada...
  #8 (permalink)  
Antiguo 06/03/2014, 11:52
Avatar de nup_  
Fecha de Ingreso: noviembre-2010
Mensajes: 265
Antigüedad: 13 años, 5 meses
Puntos: 32
Respuesta: Se puede autoejecutar un Script después de haber sido creado?

Código PHP:
Ver original
  1. $resultado = exec( "php $fechax.php" );

Doc: http://php.net/function.exec
  #9 (permalink)  
Antiguo 06/03/2014, 11:55
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Se puede autoejecutar un Script después de haber sido creado?

Cita:
Lo que pregunto es si es posible ejecutar otro que sea independiente del primero, que no le devuelve respuesta al primero ni nada...
Eso no fue lo que preguntaste al inicio.

¿A qué le llamas "independiente" del otro script?

¿Quieres aislar cualquier posible salida?

Usa buffers.

¿Quieres controlar un error o excepción?

Usa un manejador de errores.

El asunto es que no podemos adivinar los resultados del error que mencionas como para poder sugerir algo, es imposible leer tu mente y saber a lo que te refieres.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #10 (permalink)  
Antiguo 06/03/2014, 12:03
 
Fecha de Ingreso: febrero-2013
Mensajes: 119
Antigüedad: 11 años, 1 mes
Puntos: 2
Respuesta: Se puede autoejecutar un Script después de haber sido creado?

Cita:
Iniciado por nup_ Ver Mensaje
Código PHP:
Ver original
  1. $resultado = exec( "php $fechax.php" );

Doc: http://php.net/function.exec
Lo he probado antes también, con shell_exec, pero no funciona... Gracias por responder.
  #11 (permalink)  
Antiguo 06/03/2014, 12:09
 
Fecha de Ingreso: febrero-2013
Mensajes: 119
Antigüedad: 11 años, 1 mes
Puntos: 2
Respuesta: Se puede autoejecutar un Script después de haber sido creado?

Cita:
Iniciado por pateketrueke Ver Mensaje
Eso no fue lo que preguntaste al inicio.

¿A qué le llamas "independiente" del otro script?

¿Quieres aislar cualquier posible salida?

Usa buffers.

¿Quieres controlar un error o excepción?

Usa un manejador de errores.

El asunto es que no podemos adivinar los resultados del error que mencionas como para poder sugerir algo, es imposible leer tu mente y saber a lo que te refieres.
Si a ver, disculpa si me explico mal:

----FUNCIONA----
Recibir un POST y crear un script PHP con "fopen" con datos procesados del post recibido. El nuevo script creado enviará otro POST a otro sitio. Lo que me falta hacer es que se ejecute el script creado para que envie el POST.

----NO FUNCIONA----
Recibir un POST, procesar las variables y enviar un POST a otro sitio. No funciona porque no le devuelve un OK al post principal, a pesar de que el POST que yo hago, sí que se envía.

----LA SOLUCIÓN QUE ESTOY INTENTANDO----
Puesto que lo primero que te he puesto funciona, lo que intento es que al crear el fichero PHP con el código encargado de enviar el POST, éste se ejecute de alguna forma, independiente del script PHP que lo crea, para que no devuelva un error.

Los pasos serían:

1. Recibe el POST
2. Crea el fichero PHP con el código para enviar un POST
3. Le devuelve un OK, al POST principal.
---- A partir de aquí, el fichero ya no tiene que hacer nada más.
4. El segundo fichero, el que creamos con el primero, tiene que ejecutarse para enviar el POST.
  #12 (permalink)  
Antiguo 06/03/2014, 16:34
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Se puede autoejecutar un Script después de haber sido creado?

Si quieres proseguir así, aunque yo creo que no es ese el problema, pero lo que podrías hacer es, tener un cronjob que se ejecute cada minuto, que detecte si existe el script, y lo ejecute, así sería de forma independiente y desde tu script inicial solamente creas el script, el cronjob va a detectar este archivo a ejecutarlo.

Etiquetas: Ninguno
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 06:45.