Foros del Web » Programando para Internet » PHP »

ignore_user_abort me bloqueo el server

Estas en el tema de ignore_user_abort me bloqueo el server en el foro de PHP en Foros del Web. Muy buenas, Tengo un problema ya que el ignore_user_abort ha bloqueado mi servidor y no me carga ninguna web. El problema es que ejecute un ...
  #1 (permalink)  
Antiguo 21/10/2011, 05:04
 
Fecha de Ingreso: mayo-2010
Mensajes: 84
Antigüedad: 14 años
Puntos: 6
ignore_user_abort me bloqueo el server

Muy buenas,

Tengo un problema ya que el ignore_user_abort ha bloqueado mi servidor y no me carga ninguna web.
El problema es que ejecute un código donde ha entrado en un bucle infinito y el servidor lo tengo bloqueado.
Cómo puedo hacer para rectificarlo?

GRacias!!
  #2 (permalink)  
Antiguo 21/10/2011, 08:13
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 3 meses
Puntos: 288
Respuesta: ignore_user_abort me bloqueo el server

y llama al servicio tecnico del hosting,
si es tuyo intenta reiniciarlo
  #3 (permalink)  
Antiguo 21/10/2011, 08:21
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: ignore_user_abort me bloqueo el server

Espero que sepas que hace ignore_user_abort ya que es precisamente su función, dejar que el código continue ejecutandose independientemente de si el cliente esta activo o no.
  #4 (permalink)  
Antiguo 22/10/2011, 13:02
 
Fecha de Ingreso: mayo-2010
Mensajes: 84
Antigüedad: 14 años
Puntos: 6
Respuesta: ignore_user_abort me bloqueo el server

Buenas señores,

Lo que pasa es lo siguiente:

Tengo este código

Código PHP:
<?php

ignore_user_abort
(true);
set_time_limit(0);

echo 
'Probando la gestión de conexión de PHP';

while(
1)
{
    if(
connection_status() != CONNECTION_NORMAL)
    {
        echo 
"ARRIBA DEL BREAK <br />";
    break;
    
    }

    echo 
"DENTRO DEL WHILE <br />";

        
sleep(10);

        echo 
"DEBAJO DEL SLEEP <br />";


}

echo 
"ULTIMA LINEA <br />";

file_put_contents("caca""LOLO");

?>
Por qué..:
1) La página se me queda con la página en blanco sin hacer nada, al cabo de unos 30 segundos aproximadamente da error de conexión.
2) Cuando yo aborto la conexión, le doy a DETENER, supuestamente el código debería terminar de ejecutarse y crear el archivo "caca" en este caso, pero no hace nada.

¿Podrías indicarme qué hago mal?

Salu2 man.

Última edición por tonysanrusso; 22/10/2011 a las 16:07
  #5 (permalink)  
Antiguo 07/11/2011, 05:55
 
Fecha de Ingreso: mayo-2010
Mensajes: 84
Antigüedad: 14 años
Puntos: 6
Problema con ignore_user_abort

Buenos días,

Como dice el título del tema, necesito ayuda sobre este método que no logro entender por más que lo he probado y leido.
El funcionamiento de este lo tengo claro (eso creo), al ponerlo en TRUE el script se ejecuta por más que detengamos la web o cerremos el navegador.

He probado con el siguiente código:

Código PHP:
ignore_user_abort(true);

set_time_limit(0);

echo 
"Probando ignoreuserabort.... ";

while(
1){

  if(
connection_status() == CONNECTION_ABORTED){
     
file_put_contents("archivo""contenido");
     break;
  }


Se supone que al cancelar el script cuando está dentro del while debería entrar en el IF ya que hemos abortado, pero no crea ningún archivo.
Quisiera saber si el código está mal estructurado o que pasa.
Si tienen algún ejemplo del ignore_user_abort que puedan explicar sería genial.
Gracias.
  #6 (permalink)  
Antiguo 07/11/2011, 07:14
Avatar de CesarHC  
Fecha de Ingreso: junio-2011
Ubicación: localhost
Mensajes: 566
Antigüedad: 12 años, 11 meses
Puntos: 56
Respuesta: Problema con ignore_user_abort

Creo que el ejemplo del manual se explica bien su uso.

Código PHP:
Ver original
  1. <?php
  2. // Ignorar los abortos hechos por el usuario y permitir que el script
  3. // se ejecute para siempre
  4.  
  5. echo 'Probando la gestión de conexión de PHP';
  6.  
  7. // Ejecutar un bucle que hará, con suerte,
  8. // que hagamos clic fuera de la
  9. // página o en el botón "Parar".
  10. while(1)
  11. {
  12.     // ¿Falló la conexión?
  13.     if(connection_status() != CONNECTION_NORMAL)
  14.     {
  15.         break;
  16.     }
  17.  
  18.     // Dormir durante 10 segundos
  19.     sleep(10);
  20. }
  21.  
  22. // Si se alcanza esto, el 'break'
  23. // fue provocado desde dentro del bucle while
  24.  
  25. // Por lo que aquí podemos realizar una anotazión, o cualquier tarea
  26. // que necesitemos sin ser dependientes realmente del
  27. // navegador.
  28. ?>
__________________
Solo la práctica no te traicionara ¡¡¡¡¡¡

Seguir el camino tu debes PHP The Right Way.
  #7 (permalink)  
Antiguo 07/11/2011, 10:15
 
Fecha de Ingreso: mayo-2010
Mensajes: 84
Antigüedad: 14 años
Puntos: 6
Respuesta: Problema con ignore_user_abort

Y por qué cuando falla la conexión, las lineas que siguen no la ejecuta.
Por ejemplo en última línea le agrego.

file_put_contents("archivo", "prueba");

No crea el archivo.

Etiquetas: bloqueo, server
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 21:38.