Foros del Web » Programando para Internet » PHP »

Problemas con sesiones

Estas en el tema de Problemas con sesiones en el foro de PHP en Foros del Web. Wenas a todos! Les escribo para remitirles mi problema. Estoy realizando una página en php. El caso es que esa página precisa de una sección ...
  #1 (permalink)  
Antiguo 28/09/2004, 18:26
 
Fecha de Ingreso: abril-2004
Mensajes: 39
Antigüedad: 13 años, 7 meses
Puntos: 2
Pregunta Problemas con sesiones

Wenas a todos! Les escribo para remitirles mi problema. Estoy realizando una página en php. El caso es que esa página precisa de una sección de login. Ese login lo hago a traves de variables de sesión. Aquí les dejo el codigo:

Código PHP:
session_start();
$_SESSION("logeado") = "si";
...
header("location:pagina_de_login.php"); 
La página hacia donde es tirado el usuario recoge las variables mediante un "$_SESSION['loquesea']" al principio del script. Mi problema viene que cuando hago ese supuesto login y se abre la sesión, las variables aparecen vacias, pq me devuelve a una página de error definida por mi. Luego viendo esto, voy al script y hago que imprima en la pantalla del Explorer el valor de esas variables para comprobar su valor y cuando hago esto, la primera vez que lo compruebo me devuelve las variables vacias, pero si lo vuelvo a comprobar una segunda vez, estrañamente me devuelven el valor que tendrian que tener. Y entonces el script funciona como tendria que funcionar hasta que apago el ordenador o cierro el Explorer.

Espero que alguien me ayude, si no es mucha molestia.

Uso la versión 4.3.6 de php con ISS como servidor web. I php está configurado como CGI con register_globals en OFF.

Muchas Gracias por adelantado.

1 saludo!!
  #2 (permalink)  
Antiguo 28/09/2004, 20:52
Avatar de Takitei  
Fecha de Ingreso: septiembre-2004
Ubicación: Venezuela
Mensajes: 1.231
Antigüedad: 13 años, 3 meses
Puntos: 5
¿Estás propagando el SID por URL o por COOKIES?
__________________
Takitei
Ingeniarte.com
DannyHerran.com
"Dadme un punto de apoyo y moveré la tierra" - Arquímedes.
  #3 (permalink)  
Antiguo 28/09/2004, 23:51
 
Fecha de Ingreso: abril-2004
Mensajes: 39
Antigüedad: 13 años, 7 meses
Puntos: 2
Ahora mismo no tengo la configuración delante para poder decir con exactitud, pero sino recuerdo mal creo que por COOKIES.
  #4 (permalink)  
Antiguo 29/09/2004, 07:44
Avatar de Takitei  
Fecha de Ingreso: septiembre-2004
Ubicación: Venezuela
Mensajes: 1.231
Antigüedad: 13 años, 3 meses
Puntos: 5
¿Estás haciendo el session_start() en todas tus páginas?.. lo más probable es que el SID no se esté propagando correctamente por las cookies como tu dices. Verifica en tus cookies después de hacer login, si existe alguna llamada SID en tu locahost, en ella encontrarás las distintas variables de sesión definidas, si no existe, quiere decir que el SID no se está propagando y deberás verificar el estado de tus cookies.

Puedes propagar el SID por la URL aunque este metodo se esta dejando de usar porque acarrea fallos de seguridad. Si colocas parte del código quizás podamos ayudarte mejor. Un saludo!
__________________
Takitei
Ingeniarte.com
DannyHerran.com
"Dadme un punto de apoyo y moveré la tierra" - Arquímedes.
  #5 (permalink)  
Antiguo 29/09/2004, 11:48
 
Fecha de Ingreso: abril-2004
Mensajes: 39
Antigüedad: 13 años, 7 meses
Puntos: 2
Hola de nuevo!

Ya comprobé la configuración de php, y si , el SID se propaga por cookies. Comprobé que es lo que pasaba con esas cookies cuando hacia login, y cada vez que logeaba aparecian dos cookies. Una venia vacia, y la otra con las variables de sesión definidas. Y si, hago session_start() en todas las páginas de las que preciso de esas variables. Ahora mismo no tengo las páginas para poder copiar el código aquí, en cuanto pueda copio el código aquí para que te hagas una idea.

Saludosss
  #6 (permalink)  
Antiguo 29/09/2004, 11:54
Avatar de Takitei  
Fecha de Ingreso: septiembre-2004
Ubicación: Venezuela
Mensajes: 1.231
Antigüedad: 13 años, 3 meses
Puntos: 5
OK, pega el code.
__________________
Takitei
Ingeniarte.com
DannyHerran.com
"Dadme un punto de apoyo y moveré la tierra" - Arquímedes.
  #7 (permalink)  
Antiguo 05/10/2004, 13:02
Avatar de xcorpion  
Fecha de Ingreso: octubre-2003
Ubicación: m é x i c o
Mensajes: 676
Antigüedad: 14 años, 2 meses
Puntos: 4
el problema es de un bug en php, lo que pasa es que al redireccionar con la funcion header se pierden los variables de sesion, les dejo el texto original y una mi traduccion.
------ texto original ---------
PROBLEM:
All session data is lost after a header redirect from the first page on which the session is initialized. The problem is, the PHPSESSID cookie is not being sent to the browser (ANY browser, IE or Mozilla) on the initial session page with the header("Location: ...") redirect. This is unrelated to client cookie settings - the set-cookie: header just isn't sent.
SOLUTION:
I was able to remedy the problem by switching to the ISAPI DLL version. This seems to be an MS/IIS bug, NOT a PHP bug - go figure. I hope this saves you some headaches especially with your user authentication scripts!!
------ traduccion ---------
PROBLEMA
Todos los datos se pierden despues del redireccionamiento(metodo header) de la primera página en la cual la sesion se inicializo. El problema es, la cookie PHPSESSID no se envio al navegador(cualquier navegador IE, o Mozila) en la pagina de la sesion inicial con la redireccion header("Location: ..."). Esto no se relaciona con las configuraciones de cookies. la cookie definida : solo no es enviada.
SOLUCION
Yo puse remedio al problema cambiando version de la libreria(DLL) ISAPI. Esto parece ser un bug de MS/IIS no un PHP bug. Yo espero te salve de un dolor de cabeza especialmente con tus scripts de autentificacion de usuario.

// bueno ya se que soy malo traduciendo pero espero que les sirva, hasta luego
  #8 (permalink)  
Antiguo 05/10/2004, 18:43
Avatar de Takitei  
Fecha de Ingreso: septiembre-2004
Ubicación: Venezuela
Mensajes: 1.231
Antigüedad: 13 años, 3 meses
Puntos: 5
Supongo que al hacer un header() se envia una cabecera nueva que entra en conflicto con la cabecera que evía setcoookie(). Esto es bien interesante.
__________________
Takitei
Ingeniarte.com
DannyHerran.com
"Dadme un punto de apoyo y moveré la tierra" - Arquímedes.
  #9 (permalink)  
Antiguo 06/10/2004, 10:41
 
Fecha de Ingreso: abril-2004
Mensajes: 39
Antigüedad: 13 años, 7 meses
Puntos: 2
Uhm no sé si fue exactamente eso, pq las variables de sesión las creaba, sólo que al iniciar sesión se creaban 2 cookies, no sé... weno el caso es que conseguí resolverlo haciendo un header con javascript.

Muchas gracias por su tiempo y ayuda!

Saludossss
  #10 (permalink)  
Antiguo 06/10/2004, 17:48
Avatar de Takitei  
Fecha de Ingreso: septiembre-2004
Ubicación: Venezuela
Mensajes: 1.231
Antigüedad: 13 años, 3 meses
Puntos: 5
Estamos a la orden.
__________________
Takitei
Ingeniarte.com
DannyHerran.com
"Dadme un punto de apoyo y moveré la tierra" - Arquímedes.
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 15:12.