Autor Tema: [Ayuda] Mantener session php  (Leído 1372 veces)

Desconectado Caobiita!

  • PHPer@ Fijo
  • ***
  • Mensajes: 214
  • Karma: 5
  • Sexo: Masculino
  • ¡Aprendiendo!
    • Ver Perfil
    • Próximamente
[Ayuda] Mantener session php
« en: 13 de Junio de 2012, 20:51:53 pm »
Hola, pues eso, quiero hacer que una $_SESSION se mantenga activa y no se cierre al salir del navegador, he estado buscando y he encontrado esto http://www.phperos.net/foro/index.php?topic=4437.0 pero yo de la forma que lo quisiera hacer, sería de poner en el formulario del login, a parte del input de usuario y contraseña, un input tipo checkbox para marcar si quiero mantener la session activa o no.

¿Cómo lo podría hacer?

Un saludo.
En construcción.

Comunidad PHPeros

[Ayuda] Mantener session php
« en: 13 de Junio de 2012, 20:51:53 pm »

Desconectado SoyJoaquin.

  • PHPero Master
  • ******
  • Mensajes: 2.737
  • Karma: 131
  • Sexo: Masculino
  • ส้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้ส้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้ Problem?
    • Ver Perfil
    • IsoMap
Re:[Ayuda] Mantener session php
« Respuesta #1 en: 13 de Junio de 2012, 21:02:35 pm »
Llego la hora de usar cookies.
Twitter: @JoakoM010



Desconectado -Pituko-

  • PHPero Experto
  • *****
  • Mensajes: 954
  • Karma: 20
  • Sexo: Masculino
  • ¡Hala Madrid!
    • Ver Perfil
Re:[Ayuda] Mantener session php
« Respuesta #2 en: 13 de Junio de 2012, 22:37:56 pm »
Hola, pues eso, quiero hacer que una $_SESSION se mantenga activa y no se cierre al salir del navegador, he estado buscando y he encontrado esto http://www.phperos.net/foro/index.php?topic=4437.0 pero yo de la forma que lo quisiera hacer, sería de poner en el formulario del login, a parte del input de usuario y contraseña, un input tipo checkbox para marcar si quiero mantener la session activa o no.

¿Cómo lo podría hacer?

Un saludo.
Pues la cookie que guarda el id de la session se llama PHPSESSID, lo único es extender su duración.

Desconectado Caobiita!

  • PHPer@ Fijo
  • ***
  • Mensajes: 214
  • Karma: 5
  • Sexo: Masculino
  • ¡Aprendiendo!
    • Ver Perfil
    • Próximamente
Re:[Ayuda] Mantener session php
« Respuesta #3 en: 14 de Junio de 2012, 00:56:25 am »
Lo he hecho como me ha dicho Pituko, que es de la siguiente manera:

- En el archivo que valida el logueo, compruebo con un If si el campo "Alargar tiempo" está marcado, si es así pues le digo que:

          $_SESSION['login'] = $usuario_log;
          setcookie("PHPSESSID", $_COOKIE[session_name()], time()+31622400);

si no está marcado le digo:

          $_SESSION['login'] = $usuario_log;

y ya luego imprimo que hacer una vez logueado..

- El problema viene que marque o no marque el input "Alargar tiempo" se me queda la session abierta cierre o no cierre el navegador.. he pensado que alomejor el navegador guarda las cookies, pero es que he visto otras webs que lo tienen y he hecho las mismas pruebas y no pasa eso.. :L


En construcción.

Desconectado -Pituko-

  • PHPero Experto
  • *****
  • Mensajes: 954
  • Karma: 20
  • Sexo: Masculino
  • ¡Hala Madrid!
    • Ver Perfil
Re:[Ayuda] Mantener session php
« Respuesta #4 en: 14 de Junio de 2012, 17:35:46 pm »

<?php
if(campomarcado) {
setcookie("PHPSESSID"$_COOKIE[session_name()], time()+31622400);
} else {
setcookie("PHPSESSID"$_COOKIE[session_name()]);
}
?>

Pruébalo y dime si funciono. Quite el valor numérico porque se supondría que esto haría por default el valor "session" en el atributo "expires" (expirar al cerrar el navegador).

Desconectado Caobiita!

  • PHPer@ Fijo
  • ***
  • Mensajes: 214
  • Karma: 5
  • Sexo: Masculino
  • ¡Aprendiendo!
    • Ver Perfil
    • Próximamente
Re:[Ayuda] Mantener session php
« Respuesta #5 en: 14 de Junio de 2012, 18:25:20 pm »
Lo he probado y me funciona correctamente almenos ahora, si tuviera algun fallo ya lo pondría aqui..

Supongo que se te olvidó poner esto en el código.. la session.

Código: [Seleccionar]
<?php
if($_POST[&#39;alargar_session&#39;] == true) {
$_SESSION[&#39;login&#39;] = $usuario_log;
setcookie("PHPSESSID"$_COOKIE[session_name()], time()+31622400);
} else {
$_SESSION[&#39;login&#39;] = $usuario_log;
setcookie("PHPSESSID"$_COOKIE[session_name()]);}
?>

En construcción.