Evitar cierre de sesión en sitio web de usuarios registrados

  • Autor Autor spitfire
  • Fecha de inicio Fecha de inicio
spitfire

spitfire

Épsilon
Verificación en dos pasos activada
buenas noches, estoy haciendo un sitio web donde los usuarios se registran y

al loguearse les creo una session para que puedan interactuar con el contenido del sitio.

pero como hago para que no se cierre la session de un dia para el otro o incluso después de varios días ?

gracias por sus constantes ayudas
 
Depende de como esté construido tu sitio podes usar sesiones, sesiones locales, cookies, etc.
 
Depende de como esté construido tu sitio podes usar sesiones, sesiones locales, cookies, etc.
- primero el usuario se registra en la base de datos

- luego creo una session con su ID de usuario cuando se logea

Insertar CODE, HTML o PHP:
$_SESSION['USERID']

- y después mantengo la session iniciada con

Insertar CODE, HTML o PHP:
session_start();


pero esta session desaparece cuando pasa un dia o mas

que me aconsejan para que dure más tiempo ?
 
- primero el usuario se registra en la base de datos

- luego creo una session con su ID de usuario cuando se logea

Insertar CODE, HTML o PHP:
$_SESSION['USERID']

- y después mantengo la session iniciada con

Insertar CODE, HTML o PHP:
session_start();


pero esta session desaparece cuando pasa un dia o mas

que me aconsejan para que dure más tiempo ?
Con session.gc_maxlifetime. Aqui esta lo que buscas: https://stackoverflow.com/questions/156712/what-is-the-default-lifetime-of-a-session
 
Tienes que usar cookies, ahí puedes personalizar el tiempo que quieres que exista la cookie... el problema de usar $_SESSION y session_start(); es que cuando se cierre el navegador se cerrará la sesión tambien

PHP:
<?php
/*
usa la funcion setcookie($nombreDeLaCookie, $valorDeLaCookie, time()+$segundosQueDebenPasarParaExpirar);
Ten en cuenta que una fecha es literalmente un bigint, lo que hacemos aquí:
time()+60*60*24*20

Es decirle, obtenme el segundo en el que estamos de la historia y sumale tantos segundos,
60 (segundos)
60 (segundos) * 60 (minutos que es 1 hora) = 3600 segundos(1 hora pero en segundos)
3600 (segundos) * 24 (horas que es 1 día) = 86400 segundos(1 día pero en segundos)
86400 * 20 (días) = 1728000 segundos(20 días a partir del momento que creas la cookie)

*/
setcookie("usertoken", "noice", time()+60*60*24*20);
// 20 días = 60*60*24*20


//Si quieres eliminar la cookie usa:
setcookie("usertoken", "", time()-3600)
?>
 
Tienes que usar cookies, ahí puedes personalizar el tiempo que quieres que exista la cookie... el problema de usar $_SESSION y session_start(); es que cuando se cierre el navegador se cerrará la sesión tambien

PHP:
<?php
/*
usa la funcion setcookie($nombreDeLaCookie, $valorDeLaCookie, time()+$segundosQueDebenPasarParaExpirar);
Ten en cuenta que una fecha es literalmente un bigint, lo que hacemos aquí:
time()+60*60*24*20

Es decirle, obtenme el segundo en el que estamos de la historia y sumale tantos segundos,
60 (segundos)
60 (segundos) * 60 (minutos que es 1 hora) = 3600 segundos(1 hora pero en segundos)
3600 (segundos) * 24 (horas que es 1 día) = 86400 segundos(1 día pero en segundos)
86400 * 20 (días) = 1728000 segundos(20 días a partir del momento que creas la cookie)

*/
setcookie("usertoken", "noice", time()+60*60*24*20);
// 20 días = 60*60*24*20


//Si quieres eliminar la cookie usa:
setcookie("usertoken", "", time()-3600)
?>
si creo que esto me va a funcionar mejor para lo que estoy buscando, muchas gracias
 
¿Cómo gestionas las sesiones? Guardas en la base de datos algún token?
 
Atrás
Arriba