Foros del Web » Programando para Internet » PHP »

session_start bloquea navegacion

Estas en el tema de session_start bloquea navegacion en el foro de PHP en Foros del Web. Hola, Tengo implementado un portal con autentificación basado en sesiones. Cada una de las páginas que forman el portal lo primero que hacen es session_start() ...
  #1 (permalink)  
Antiguo 10/05/2004, 08:53
jcorba
Invitado
 
Mensajes: n/a
Puntos:
session_start bloquea navegacion

Hola,

Tengo implementado un portal con autentificación basado en sesiones. Cada una de las páginas que forman el portal lo primero que hacen es session_start() y comprobar si existen una serie de variables de sesion registradas. De esta forma consigo que nadie pueda ver el contenido de las páginas del portal si no ha iniciado una sesion.
Además tengo implementado una página de descargas la cual el llamada con un parametro y nos devuelve el fichero correspondiente (seguin el ID pasado por parametro) mediante la funcion readfile y unas cuantas cabeceras http. Para evitar que los ficheros puedan ser descargados sin haber iniciado sesion, esta pagina tambien hace la comprobación con el session_start()

El problema que tengo es que no puedo hacer dos descargas simultaneas y hasta que no termina la primera no empieza la segunda. He estado mirando el flujo de la segunda descarga y se queda colgado en la linea que tiene el session_start.

Alguien sabe por que el session_start se queda bloqueado??
(Si en la página de descargas comento el session_start todo funciona perfectamente)

Un saludo
Jose
  #2 (permalink)  
Antiguo 10/05/2004, 09:02
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

Logico, cuando haces un session_start() abres el fichero de sesion y no se cierra hasta que se finaliza el script. Y session_start() espera hasta que ese fichero este cerrado para poder abrirlo. Asi se evita que un script modifique los datos de una sesion mientras la esta usando otro script.

Solucion a tu problema: session_write_close() (http://www.php.net/manual/en/functio...rite-close.php)., justo despues de haber autentificado el acceso a la descarga y antes de mandar los datos del fichero.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 10/05/2004, 09:21
jcorba
Invitado
 
Mensajes: n/a
Puntos:
Josemi,

Simplemente decirte que funciona perfectamente ..... muchiiiiiiiiiiiiiiisimas gracias.
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 18:31.