Foros del Web » Programando para Internet » PHP »

Sesiones permanentes o duraderas y login con facebook

Estas en el tema de Sesiones permanentes o duraderas y login con facebook en el foro de PHP en Foros del Web. Hola muy buenas, Parece que no estoy pillando bien esto de las sesiones con php. Estoy intentando que cuando una persona se loguea en mi ...
  #1 (permalink)  
Antiguo 22/11/2013, 07:10
Avatar de gachon  
Fecha de Ingreso: septiembre-2004
Ubicación: En Google
Mensajes: 462
Antigüedad: 20 años, 3 meses
Puntos: 3
Información Sesiones permanentes o duraderas y login con facebook

Hola muy buenas,

Parece que no estoy pillando bien esto de las sesiones con php.
Estoy intentando que cuando una persona se loguea en mi pagina web, que dure permanentemente o por un largo tiempo como hacen muchas paginas como Facebook que hasta que no elimino la Session o elimino todo el historial del navegador no tengo que volver a loguearme.

Vamos al grano:

Me estoy logeando con facebook en mi web obtengo todos los datos con la api y creo las sesiones, pero he hecho una prueba y al cabo de dos horas o menos la Session ha muerto, porque he salido a la calle un momento sin cerrar el navegador y cuando he vuelto ya había muerto la Session.
¿Como lo puedo hacer para que sea más duradera la Session?

Código PHP:
    session_destroy();
    
$tiempo=time()+60*60*24*30// 1 año
    
session_cache_expire($tiempo);
    
$cache_expire session_cache_expire();
    
session_start();
    
session_set_cookie_params($tiempo);
    
$_SESSION['idusuario'] = $userQuery['idusuario'];
    
$_SESSION['email'] = $userQuery['email'];
    
$_SESSION['usuario'] = $userQuery['usuario'];
    
$_SESSION['url_usuario'] = $userQuery['url'];
    
$_SESSION['ultima_entrada'] = $userQuery['fecha_ultima_entrada'];
    
$_SESSION['provider'] = $provider//facebook
    
$_SESSION['identificador'] = $identificador
Espero puedan ayudarme.
Saludos!!!
  #2 (permalink)  
Antiguo 22/11/2013, 08:01
Avatar de xSkArx  
Fecha de Ingreso: marzo-2008
Ubicación: Chile
Mensajes: 945
Antigüedad: 16 años, 9 meses
Puntos: 96
Respuesta: Sesiones permanentes o duraderas y login con facebook

Si quieres que la sesion sea permanente es mejir que uses cookies
__________________
Busca, lee y practica todo lo que puedas.
Usa siempre el buscador antes de postear.
Si posteas código, utiliza el HIGHLIGHT correcto.
  #3 (permalink)  
Antiguo 22/11/2013, 09:37
Avatar de Dalam  
Fecha de Ingreso: septiembre-2010
Mensajes: 409
Antigüedad: 14 años, 3 meses
Puntos: 56
Respuesta: Sesiones permanentes o duraderas y login con facebook

no estoy deacuerdo con lo que dice xSkArx por que el tiempo de vida de la sesion esta sujeta a la configuracion de php.ini

session.gc_maxlifetime es el encargado de expecificar (Como dice xSKArx) que session tiene que ser tratada como basura, pero esta sujeto a los valores de session.gc_probability y de session.gc_divisor.

Por el contrario si usas session.cache_expire podras cambiar el valor sin ningun otro cambio, por defecto tiene un valor de 180 minutos.

Lo de las cookies no es necesario, pues las sessiones usan una cookie para definir los valores.

Nota:
Si usas no-cache, este cambio no tendra efecto.

si quieres hacerlo desde el script PHP seria:
Código PHP:
<?php
    session_cache_expire
(30); // Tiempo de vida de la session en minutos 
    
$cache_expire session_cache_expire();
    
session_start(); // Es indispensable iniciar sesion despues de definir el tiempo de vida de la session
    
echo "The cache limiter is now set to $cache_limiter<br />";
    echo 
"The cached session pages expire after $cache_expire minutes";
?>
  #4 (permalink)  
Antiguo 22/11/2013, 09:50
Avatar de Dalam  
Fecha de Ingreso: septiembre-2010
Mensajes: 409
Antigüedad: 14 años, 3 meses
Puntos: 56
Respuesta: Sesiones permanentes o duraderas y login con facebook

Tambien puedes cambiar los parametros de la cookie de session.

Código PHP:
<?php
    session_set_cookie_params
('3600'); // 1 hora
    
session_start();
?>
la estructura de session_set_cookie_params es

session_set_cookie_params ( int $lifetime [, string $path [, string $domain [, bool $secure = false [, bool $httponly = false ]]]] )
  • lifetime
    Tiempo de vida de la cookie de sesión, definido en segundos.
  • path
    Ruta en el dominio donde la cookie trabajará. Use una barras simple ('/') para todas las rutas en el dominio.
  • domain
    Dominio de la cookie, por ejemplo 'www.php.net'. Para hacer las cookies visibles en todos los sub-dominios, el dominio debe ser prefijado con un punto, como '.php.net'.
  • secure
    Si es TRUE la cookie sólo será enviada sobre conexiones seguras.
  • httponly
    Si es TRUE PHP intentará enviar la bandera httponly cuando se establezca la cookie de sesión.
informacion obtenida de http://php.net
  #5 (permalink)  
Antiguo 22/11/2013, 10:46
Avatar de gachon  
Fecha de Ingreso: septiembre-2004
Ubicación: En Google
Mensajes: 462
Antigüedad: 20 años, 3 meses
Puntos: 3
Respuesta: Sesiones permanentes o duraderas y login con facebook

Muchas gracias a los dos sobre todo a ti Dalam por toda la info.
Voy a praticarlo a ver que tal sale

Un abrazo.

Etiquetas: facebook, login, sessions
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 04:07.