elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
28 Mayo 2012, 04:57  


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP
| | | |-+  Utilizacion de un bucle infinito (script en escucha)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Utilizacion de un bucle infinito (script en escucha)  (Leído 3,417 veces)
mark182


Desconectado Desconectado

Mensajes: 385


Ver Perfil
Utilizacion de un bucle infinito (script en escucha)
« en: 28 Febrero 2011, 20:59 »

Hola como estan?

Les cuento que es lo que quiero hacer. Mi idea es crear un script que este en escucha, esto significa que cuando vea que existe cierto archivo en el directorio principal del servidor, se ejecuten ciertas instrucciones.
Lo que hice fue crear un bucle do-while que compruebe la existencia del archivo. Si existe, guarda el contenido del archivo en la base de datos y luego lo borra. Lo borro para que quede en un bucle infinito (eso seria estar en escucha), asi cuando aparece el archivo nuevamente, repite la accion.

Les dejo el codigo:
Código:
do
{
if( file_exists("archivo-entrante.txt") )
{
$fp = fopen("archivo-entrada.txt","r");
if($fp)
{
while( !feof($fp) )
$cod = fread('archivo-entrada.txt');
//Se guarda contenido en BD.
}
else
{
echo "No se pudo abrir el archivo.";
}
fclose($fp);

if( unlink("archivo/archivo-entrada.txt") )
echo "Se guardo en BD";
else
echo "El archivo no se pudo borrar o no existe.";
}
}while( file_exists("archivo-entrante.txt") == false );


El problema es que mi script no se queda en "escucha", el error que me tira al ejecutarlo es el siguiente:

Citar
Fatal error: Maximum execution time of 10 seconds exceeded in /home/a3410577/public_html/leer-archivos.php on line 26


Como lo podria hacer?

Muchas gracias por su ayuda. Nos vemos.


En línea
Shell Root


Desconectado Desconectado

Mensajes: 2.456


Alex Jurado


Ver Perfil WWW
Re: Utilizacion de un bucle infinito (script en escucha)
« Respuesta #1 en: 28 Febrero 2011, 21:02 »

No creo que sea viable, para que quieres hacer eso? Quizás exista otra opción que no sea por programación.


En línea

---
mark182


Desconectado Desconectado

Mensajes: 385


Ver Perfil
Re: Utilizacion de un bucle infinito (script en escucha)
« Respuesta #2 en: 28 Febrero 2011, 21:10 »

Para crear el archivo y apenas lo guarde con el nombre "archivo-entrada.txt", se guarde automaticamente en la base de datos.
En línea
~ Yoya ~
Wiki

Desconectado Desconectado

Mensajes: 954



Ver Perfil
Re: Utilizacion de un bucle infinito (script en escucha)
« Respuesta #3 en: 28 Febrero 2011, 21:11 »

Los script en PHP, tiene un tiempo de ejecución definido en el PHP.ini. La directiva encargada del tiempo maximo de ejecucion es max_execution_time.

Para evitar esto, puedes usar la funcion set_time_limit, agregándole como primer parámetro 0, asi el tiempo de ejecución es infinito.

Agrégalo al inicio del source.
Código
set_time_limit(0);
En línea

mark182


Desconectado Desconectado

Mensajes: 385


Ver Perfil
Re: Utilizacion de un bucle infinito (script en escucha)
« Respuesta #4 en: 28 Febrero 2011, 21:13 »

Gracias yoya lo voy a probar.
En línea
mark182


Desconectado Desconectado

Mensajes: 385


Ver Perfil
Re: Utilizacion de un bucle infinito (script en escucha)
« Respuesta #5 en: 28 Febrero 2011, 21:21 »

Otra pregunta,

Esto de dejar que entre en un bucle infinito, me podria llegar a traer algun tipo de problema en el servidor ¿que se caiga el servidor o algo por el estilo?

Yo creo que no, porque el script no llena memoria o algo por el estilo. Y si se queda en el bucle infinito no esta realizando nada, solamente preguntando por la existencia de un archivo.

Pero ustedes que seguramente entienden mas del tema, me podrian decir si puede fallar este bucle infinito?

Gracias.
En línea
~ Yoya ~
Wiki

Desconectado Desconectado

Mensajes: 954



Ver Perfil
Re: Utilizacion de un bucle infinito (script en escucha)
« Respuesta #6 en: 28 Febrero 2011, 21:43 »

El script puede causarte un DoS. También esta la opción que alguien encuentre el archivo y lo ejecute varias veces.

Aunque exista la opción de que nadie encuentre el archivo, no esta bien tener un archivo que te cause DoS.

Te recomiendo que para ejecutar el código se le tenga que pasar un parámetro vía GET o POST o COOKIE, con algun dato.
Así evitarías que otra persona ejecute el source por error o buscando vulnerabilidades.

Yo en tu caso, editaría el source y eliminaría el do-while. Y lo que haría, seria ejecutar el script cada x tiempo, así evito un futuro auto DoS. Puedes usar cron o otro programa similar.

Saludos.
En línea

mark182


Desconectado Desconectado

Mensajes: 385


Ver Perfil
Re: Utilizacion de un bucle infinito (script en escucha)
« Respuesta #7 en: 28 Febrero 2011, 21:59 »

Disculpa mi ignoracia yoya pero que es un DoS?

Gracias.
En línea
~ Yoya ~
Wiki

Desconectado Desconectado

Mensajes: 954



Ver Perfil
Re: Utilizacion de un bucle infinito (script en escucha)
« Respuesta #8 en: 28 Febrero 2011, 22:11 »

http://tinyurl.com/34bnw5o
Cita de: Wikipedia
En seguridad informática, un ataque de denegación de servicio, también llamado ataque DoS (de las siglas en inglés Denial of Service), es un ataque a un sistema de computadoras o red que causa que un servicio o recurso sea inaccesible a los usuarios legítimos. Normalmente provoca la pérdida de la conectividad de la red por el consumo del ancho de banda de la red de la víctima o sobrecarga de los recursos computacionales del sistema de la víctima.
« Última modificación: 28 Febrero 2011, 22:12 por ~ Yoya ~ » En línea

mark182


Desconectado Desconectado

Mensajes: 385


Ver Perfil
Re: Utilizacion de un bucle infinito (script en escucha)
« Respuesta #9 en: 28 Febrero 2011, 22:41 »

Yoya gracias por la info pero mi script siempre esta en ejecucion indefinidamente. Lo q hace es entrar en la base de datos si existe el archivo de entrada. Pero el script siempre esta en ejecucion y no para
En línea
~ Yoya ~
Wiki

Desconectado Desconectado

Mensajes: 954



Ver Perfil
Re: Utilizacion de un bucle infinito (script en escucha)
« Respuesta #10 en: 28 Febrero 2011, 22:55 »

El script puede causarte un DoS. También esta la opción que alguien encuentre el archivo y lo ejecute varias veces.

Yo en tu caso, editaría el source y eliminaría el do-while. Y lo que haría, seria ejecutar el script cada x tiempo, así evito un futuro auto DoS. Puedes usar cron o otro programa similar.

En línea

JungleBoogie

Desconectado Desconectado

Mensajes: 174


Metal Freak


Ver Perfil WWW
Re: Utilizacion de un bucle infinito (script en escucha)
« Respuesta #11 en: 28 Febrero 2011, 23:51 »

Si no utilizaras ECHOs, podrias hacerlo con header() y volver a ejecutar el script.

Con ECHOs.... pues prueba con el META REFRESH
En línea

mark182


Desconectado Desconectado

Mensajes: 385


Ver Perfil
Re: Utilizacion de un bucle infinito (script en escucha)
« Respuesta #12 en: 1 Marzo 2011, 00:32 »

Gracias JungleBoogie y yoya.
Lo que quiero hacer no es algo para una web, sino es una aplicacion que quiero utilizar para guardar productos en la base de datos. Estos productos estan en el archivo de entrada que es generado por una pistola lectora de codigo de barras.
Utilizo php por la sencilles, por las funciones para mysql que tiene y porque es el mejorsito que manejo.
Mas que nada quiero dejar el script en escucha para que, cuando la pistola genere el archivo, el script lo capte automaticamente y lo guarde en mysql
En línea
~ Yoya ~
Wiki

Desconectado Desconectado

Mensajes: 954



Ver Perfil
Re: Utilizacion de un bucle infinito (script en escucha)
« Respuesta #13 en: 1 Marzo 2011, 12:10 »

Solo agrégale set_time_limit(0); y déjalo a la escucha xD.
En línea

mark182


Desconectado Desconectado

Mensajes: 385


Ver Perfil
Re: Utilizacion de un bucle infinito (script en escucha)
« Respuesta #14 en: 1 Marzo 2011, 14:42 »

Solo agrégale set_time_limit(0); y déjalo a la escucha xD.

hay un problema :S el servidor tiene deshabilitada esta funcion :S
En línea
Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
probando un bucle infinito... « 1 2 »
Bugs y Exploits
mousehack 20 3,107 Último mensaje 6 Noviembre 2005, 20:13
por Ertai
me queda un bucle infinito
Programación C/C++
USUARIO_DE_SOFTWARE_LIBRE 3 483 Último mensaje 10 Mayo 2006, 15:56
por USUARIO_DE_SOFTWARE_LIBRE
[Solucionado]Problema con un bucle infinito
Programación C/C++
saikun 5 971 Último mensaje 21 Enero 2008, 18:58
por saikun
Bucle infinito para petar linux en C ??
Hacking Linux/Unix
LegolasArc 2 2,307 Último mensaje 5 Diciembre 2010, 12:12
por TRICKY
El que se ha metido en un bucle infinito soy yo...
Programación C/C++
Superplay 0 1,662 Último mensaje 1 Diciembre 2010, 21:14
por Superplay
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines