Evitar encerramento de sessão em site de usuários registrados

  • Autor Autor spitfire
  • Data de início Data de início
Tradução em andamento: em alguns minutos este tópico estará em português. Por enquanto, o conteúdo está no original em espanhol. Ver original
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
 
Foi útil? Participe da conversa

Com sua conta grátis você pode responder, mandar mensagem privada ao autor e comprar com Saldo retido: o pagamento é liberado quando você recebe o combinado.

Leva 30 segundos · você volta a este tópico ao terminar
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

Inserir CODE, HTML ou PHP:
$_SESSION['USERID']

- y después mantengo la session iniciada con

Inserir CODE, HTML ou 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

Inserir CODE, HTML ou PHP:
$_SESSION['USERID']

- y después mantengo la session iniciada con

Inserir CODE, HTML ou 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?
 
¿Cómo gestionas las sesiones? Guardas en la base de datos algún token?
solo creo la Session cuando ingresa al sitio y le asigno el numero de usuario que esta guardado en la base de datos
 
Voltar
Topo