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 para iniciar una sessión utilizo lo siguiente: Código PHP: session_start (); session_name ( 'sid' ); $sid  =  session_id ();  y la primera vez que ...
  #1 (permalink)  
Antiguo 21/02/2003, 12:05
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 para iniciar una sessión utilizo lo siguiente:

Código PHP:
session_start();
session_name('sid');
$sid session_id(); 
y la primera vez que abro la pagina se añade automaticamente en todos los enlaces de mi pagina ?sid=xxxxxxx cuando accedo a uno de estos enlaces esto ya no pasa.

¿Como puedo evitar que esto suceda? Espero que me entiendan

Saludos
  #2 (permalink)  
Antiguo 21/02/2003, 16:52
Avatar de fmmeson  
Fecha de Ingreso: enero-2002
Ubicación: Tucuman
Mensajes: 401
Antigüedad: 15 años, 10 meses
Puntos: 2
te recomiendo que propagues el SID en forma manual en tus enlaces......de la siguiente manera:

Código PHP:
$miSID=session_name()."=".session_id();
header("Location: pagina.php?$miSID");
exit; 
espero que te sirva....Un Saludo!
  #3 (permalink)  
Antiguo 21/02/2003, 17:58
Avatar de kaslierx  
Fecha de Ingreso: febrero-2003
Ubicación: Valencia
Mensajes: 190
Antigüedad: 14 años, 10 meses
Puntos: 0
Re: Sessión en URL

Creo que se me ha entendido mal. Lo que quiero es todo lo contrario. Quiero evitar que las sessiones se registren en los enlaces de mi sitio.

Saludos
  #4 (permalink)  
Antiguo 21/02/2003, 18:30
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
El session_name() se ha de definir antes q el session_start() y siempre q uses sessiones has de indicarlo (podrias omitirlo y tomaría el nombre que PHP da por defecto a las sessiones PHPSEID o similiar no recuerdo bien ..)

Código PHP:
<?
session_name
('sid');
session_start();
$sid session_id();
?>
El efecto que detallas sobre el SID sucede si usas propagación del SID por COOKIES que es como lo estas haciendo.

Podrías desactivar la directiva (php.ini):

url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=,fields et="

o quitar por lo menos las referencias a LINKs como a=href por lo menos (igual apareceria en campos hidden de formularios por ejemplo en un primer instante)

Tambien tienes la opcion de SOLO usar cookies para progagar el SID:
; session.use_only_cookies = 1

Activala en tu PHP.ini quitando el ; de delante (y por supuesto ha de estar; que ya lo estará activada y a 1: session.use_cookies = 1

Con eso SOLO propagarias el SID en una cookie .. cosa que debes tener claro y en cuenta que si un Cliente (un navegador de tus visitas a ese sitio) NO deja guardar cookies en el (las tiene desactivadas o no las acepta) .. Tu sistema q use sesiones no va a funciona por la sencilla razon q NO se propaga el SID.

Estas directivas se pueden "forzar" en tiempo de ejecución de tus scripts via:

ini_set("directiva","estado");

Eso al principio de TODOS los scripts q usen esa configuración exclusiva .. con eso te aseguras que donde pongas tus aplicaciones q usen esa configuración q tu requieres .. sea la correcta (siempre y cuando dejen usar ini_set() en el servidor q lo pretendas usar). Con esto te evitarias modificar tu php.ini (útil si no tienes acceso al php.ini como en servicios de hosting)..

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 01:32.