Foros del Web » Programando para Internet » PHP »

Estoy todavia tratando de entender SID

Estas en el tema de Estoy todavia tratando de entender SID en el foro de PHP en Foros del Web. Código HTML: <form action= "<?=$PHP_SELF." ?".$SID?>" method= "post" > Todavia tengo algunas dudas con respecto a $sid (que es lo que maneja especificamente de la ...
  #1 (permalink)  
Antiguo 20/09/2006, 05:56
 
Fecha de Ingreso: agosto-2006
Mensajes: 388
Antigüedad: 17 años, 8 meses
Puntos: 0
Estoy todavia tratando de entender SID

Código HTML:
<form action="<?=$PHP_SELF."?".$SID?>" method="post"> 
Todavia tengo algunas dudas con respecto a $sid (que es lo que maneja especificamente de la sesion), en este ejemplo que esta realizando????, gracias
  #2 (permalink)  
Antiguo 20/09/2006, 06:38
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
El SID es el Identificador Único de Sesión, es el "dato" que relaciona los datos que tienes en tu servidor (en un archivo físico) con el "cliente" que los creó y que le pertenecen. Por eso es un "ID" único y aleatorio (que no se repite o no debe) ni que sea "facil" de "componer" para tomar una sesión válida arbitráriamente.

El "SID" se -debe- propagar entre el cliente-servidor .. puede ser por el URL (como es el caso que presentas) o por cookies. Cookies que en ese caso sería PHP quien las crea y gestiona para este caso concreto si así se le dice a PHP que lo haga por configuración:

(php.ini)
session.use_trans_sid = OFF (desactivar la propagación del SID en el URL re-escribiendo ciertos tágs HTML que se definien en url_rewrite_tags = ...)
session.use_cookies= ON (decir a PHP que genere la cookie para propagar el SID)
session.use_only_cookies = ON (forzar propagación del SID sólo en cookies)

Por seguridad, deberías propagar el SID en cookies, esto requiere que tu cliente (navegador) acepte la cookie que PHP va a crear. Esto trae problemas en los clientes que no las aceptan (pero eso es cosa tuya avisar de este hecho a tus usuarios). Propagar el SID en el URL puede traer problemas de seguridad.

En esa línea de código que presentas tienes vários problemas.

1) NO uses $PHP_SELF .. usa los arrays superglobales $_SERVER para acceder a variables de servidor:

$_SERVER['PHP_SELF']

2) SID (Identificador Único de Sesión) en tu contexto no es una variable sino una constante .. por ende NO lleva el $ delante:

Código PHP:
<form action="<?=$_SERVER['PHP_SELF']."?".SID?>" method="post">
Personalmente si tuviera que propagar el SID manualmente en tu formulario por el URL lo haría en un campo hidden y no como lo haces:

Código PHP:
<input type="hidden" name="<?=session_name();?>" value="<?=session_id()?>">
Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 20/09/2006, 08:19
 
Fecha de Ingreso: agosto-2006
Mensajes: 388
Antigüedad: 17 años, 8 meses
Puntos: 0
Gracias

la verdad que me sirve de mucho tu ayuda, gracias nuevamente por tu tiempo
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 04:26.