Foros del Web » Programando para Internet » PHP »

usando sessiones y cookies

Estas en el tema de usando sessiones y cookies en el foro de PHP en Foros del Web. Buenas: Tengo un script de autentificacion de usuarios y uso este codigo: Código PHP: session_name ( 'sid' ); session_start (); session_register ( 'identificacion' ); $identificacion ...
  #1 (permalink)  
Antiguo 21/03/2003, 11:16
Avatar de kaslierx  
Fecha de Ingreso: febrero-2003
Ubicación: Valencia
Mensajes: 190
Antigüedad: 15 años, 3 meses
Puntos: 0
usando sessiones y cookies

Buenas:

Tengo un script de autentificacion de usuarios y uso este codigo:

Código PHP:
session_name('sid');
session_start();
session_register('identificacion');
$identificacion=$username;

// Metemos la session en una cookie
$session Session_id();
setcookie("sid"$sessiontime()+(31536000*100), "/""cybertatu.net"""); 
Todo funciona bien, pero cuando el cliente cierra el navegador se borra la cookies, entonces quiero que esto no pase, es decir que el usuario aunque apague el ordenador siga teniendo la cookies activada. ¿Se puede hacer? Como lo hace el PHP-NUKE?

Gracias

Última edición por kaslierx; 21/03/2003 a las 11:20
  #2 (permalink)  
Antiguo 21/03/2003, 12:28
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 16 años, 4 meses
Puntos: 126
Lo que guardas en la COOKIE es SOLO el SID .. el nombre+id de la session pero NO sus datos .. los datos de la sesion permamenten en el servidor .. y segun tenga configurador el tema de las directivas session.gc_maxlifetime y otras .. durará mas o menos tiempo la session en el servidor activa para ese SID unico que se genera en cada uso de session_start() si no le llega un SID valido con el que continuar ..

Eso mismo que estas haciendo "manualmente" lo hace PHP por tí si usas las directivas:
session.use_cookies = 1
session.cookie_lifetime = 0

(ambas se pueden ajustar definitivamente via php.ini o ini_set() en tiempo de ejecución) ..

Si llegases a combinar ambos tiempos de expiración del SID en la cookie con el gc_maxlifetime .. podrias simular ese efecto de "continuar con el la sesion abierta" ..

Eso no es recomendable .. hacerlo así .. Imagina que por A o B motivo me "progagas" el SID en un link o lo que sea a otra sitio web fuera del tuyo .. Es probable que si entro con ese SID que he capturado en mi sitio via un httreferer por ejemplo pueda entrar a tu sistema como usuario activo y autorizado ..

Hay mas directivas y formas de eviatar propagar el SID (una de ellas es usar y forzar a usar cookies para propagar el SID . esto si te topas con un navegador que no use cookies o no las acepte no va a poder usar tu sistema ..)

En resumen .. En sistemas tipo "recordad contraseña del usuario para otra vez q entre al sitema" .. Lo que se hace es guardar en una cookie los datos de usuario/password (el password por lo menos encriptado en MD5() o otros algoritmos ..) Tu sistema mira si está definida la cookie en el cliente con los valores correspondientes .. si es así .. autentifica al usuario y crea la session en el servidor .. continuando su uso y su navegación por el sitio via los datos de la session .. Si no está esa cookie en el cliente . .se le pide "login" como de contumbre .. A su vez si quieres puedes ofrecer al usuario si quiere usar esa modalidad de "identificarme siempre" (guardando la cookkie) o no .. (tal cual lo hace estos foros por ejemplo ..)

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.

Última edición por Cluster; 21/03/2003 a las 12:34
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 00:44.