Foros del Web » Programando para Internet » PHP »

Session en URL

Estas en el tema de Session en URL en el foro de PHP en Foros del Web. Hola. Que funcion tengo que utilizar para que me añada automaticamente : &sid=id_de_la_sesion al final de las url de mi sitio. Incluso si el usuario ...
  #1 (permalink)  
Antiguo 09/02/2003, 08:58
Avatar de kaslierx  
Fecha de Ingreso: febrero-2003
Ubicación: Valencia
Mensajes: 190
Antigüedad: 14 años, 10 meses
Puntos: 0
Session en URL

Hola.
Que funcion tengo que utilizar para que me añada automaticamente : &sid=id_de_la_sesion al final de las url de mi sitio. Incluso si el usuario tiene activadas las cookies.
  #2 (permalink)  
Antiguo 10/02/2003, 05:20
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
El SID (identificador Unico de sesion) se compone de dos partes:

El nombre de la sesion y su Identificador único.

Lo puedes propagar en modo Automático tan solo configurando la directiva de tu php.ini:

session.use_trans_sid = 1
(a "uno" indica ON .. a "cero" OFF ..)

A su vez .. si usas
session.use_cookies = 1

El SID se propagará en una cookie .. cosa que te dará problemas si el Cliente (el usuario de tus aplicaciones) no acepta cookies. Pero si lo usas a "cero" .. Será PHP el que automáticamente meta el SID al final de tus Links .. o de tus <form .. com un campo hidden .. y de otros TAG HTML (rescribirlos).

Si quieres hacerlo manualmente tenras que añadir a tus links .. o si usas formularios como mencioné en un campo hidden ... el SID .. pero formado con el nombre actual de la sesion y su ID ..

Código PHP:
echo "<a href=\"pagina.php?variables=valor&".session_name()."=".session_id()."">ir a pagina</a>"; 
Eso te dará un link tipo:
pagina.php?variables=valor&PHPSESSID=3as34a34af467 sfagas34

El PHPSESSID es el nombre por defecto de las sessiones que PHP crea si no se le indica alguno en concreto .. Por eso es recomendable usar session_name() para obtener el nombre de la session en curso.

Un saludo,
  #3 (permalink)  
Antiguo 10/02/2003, 13:27
Avatar de MSDark  
Fecha de Ingreso: noviembre-2002
Ubicación: Talca VII región
Mensajes: 337
Antigüedad: 15 años, 1 mes
Puntos: 1
yo uso

ini_set("session.use_cookies","0");
ini_set("session.use_trans_id","1");

Y con eso tengo para enviar el SID por la url.

Funciona bien.


(Cluster gracias la otra ves tu me solucionaste el problema)


Saludos
__________________
DelirioLinux.. Software Libre y tecnología.. php también..
Saludos :arriba:
Usuario Linux #198486 y Ubuntu #12791
Gutsy Gibbon
  #4 (permalink)  
Antiguo 10/02/2003, 13:47
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Pues ya tiene donde elegir ..

Faltaria solo usar esas directivas en un .htaccess via:
php_flag directiva valor

(y si hay alguna mas q falta .. avisen ..)

Con eso te evitas hacer en todos los scritpts que uses sessiones el ini_set() siendo valido para el directorio q metas el .htaccess ..

De todas formas .. lo ideal sería (por seguridad) propagar el SID en modo totalmente manual tal cual el ejemplo q puse anterior .. Así propagas el SID en los links hacia páginas de tu sitio y no por ejemplo hacia sitios externos q podrian usar ese SID en contra tuya ... Aunque .. es mas cómodo hacer q PHP nos propague el SID automáticamente ..

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 07:19.