Foros del Web » Programando para Internet » PHP »

¿Como propagar el SID por header?

Estas en el tema de ¿Como propagar el SID por header? en el foro de PHP en Foros del Web. Buenas, este es mi primer post. Espero hacerlo de la mejor manera posible. Bueno, el problema que tengo es que cuando intento propagar una session ...
  #1 (permalink)  
Antiguo 30/03/2005, 00:10
 
Fecha de Ingreso: marzo-2005
Mensajes: 12
Antigüedad: 19 años
Puntos: 0
¿Como propagar el SID por header?

Buenas, este es mi primer post. Espero hacerlo de la mejor manera posible.

Bueno, el problema que tengo es que cuando intento propagar una session iniciada con session_register('usuario') y utilizando luego $_session[usuario]=$variable mediante headers, pierdo el sid y no se propaga, por lo que pierdo tambien las variables de session.

Lei por algun lugar que puedo propagar el SID agregandolo de la siguiente manera en el header

header ("location: homeusuario.php?".SID);

pero estoy seguro que no es la unica manera, ya que lo hice anteriormente de esta manera

header ("location: homeusuario.php);

y tambien me lo propago.

Supongo que en el archivo php.ini, dentro de la directiva
url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeent ry"
existirá algun modo de agregar los header, pero ¿como?

Si alguien conoce la respuesta, se lo agradecería!!!
  #2 (permalink)  
Antiguo 30/03/2005, 02:06
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,
Cita:
pero estoy seguro que no es la unica manera, ya que lo hice anteriormente de esta manera

header ("location: homeusuario.php);

y tambien me lo propago.
Para que te lo propagara de esa forma tenia que propagarse por cookie, no por URL.

Lo mejor es usar lo del SID:
Código PHP:
header ("location: homeusuario.php?".SID); 
ya que como dice el manual (http://www.php.net/manual/en/function.session-id.php)
Cita:
Note that SID is only defined if the client didn't send the right cookie
Es decir, si ya existe la cookie con el id de sesion SID no tiene valor.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 30/03/2005, 09:31
 
Fecha de Ingreso: marzo-2005
Mensajes: 12
Antigüedad: 19 años
Puntos: 0
Gracias Josemi

Entonces, dejo que propage el sid adjuntandolo en la url, por lo menos asi funciona como corresponde.
Pense que talvez en la configuracion de php.ini se podia agregar.
Ahora, puede ser que en el archivo de configuracion de php se utilice la propagacion del sid con session.use_trans_sid = 1 y ademas el uso de coockies?? es decir, los dos metodos conjuntos?
  #4 (permalink)  
Antiguo 30/03/2005, 10:04
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
En principio lo que manda es la cookie .. si existe un SID en ella válido se usa este .. sino se usa el que pueda haber incrustrado PHP automáticamente vía session.use_trans_sid = 1 (en los tags HTML que define: url_rewriter.tags) .. Pero, como veras PHP no lo hace en algunos casos automáticamente como por ejemplo en un header() "de location" .. tampoco lo hace cuando usas javacript para redireccionar (un window.open .. window.location .. etc) ni en etiquetas HTML como <META de refresh ..>

Por otro lado .. PHP recomienda el uso de la propagación en Cookies por seguridad:
http://www.acros.si/papers/session_fixation.pdf
(documento recomendado en www.php.net/session (versión en ingles)).

Ahora .. si tienes problemas concretos con la propagación del SID en cookies por que esta no se crea correctamente (bloqueada por configuración de tu navegador .. de firewalls, antivirus y temas vários ..) es otro tema que habría que ver .. PHP en su php.ini define algunas directivas sobre como creará esa cookie al usar session.use_cookies = ON o incluso el forzado exclusivo de uso de cookies para la propagación del SID con session.use_only_cookies = ON

Un saludo,
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 17:39.