Cita: Pues, una sesion caduca por el simple hecho de cerrar tu navegador
Técnicamente es falso eso... Ese comportamiento sucede si se le da un tiempo de vida a la cookie de sesión de 0, es entonces cuando se interpreta "hasta que se cierre el navegador".
Cita: Hay alguna forma de hacer que las sesiones no caduquen?
Cuál es el comportamiento exácto que buscas?.
Ya se dijo que puedes hacer que la sesión caduque hasta cuando se cierra el navegador; como quien dice "que no caduque" mientras se siga ocupando. Para asignarle un tiempo de vida de 0 puedes configurarlo desde el php.ini (por default) con la directiva
session.cookie_lifetime ó dentro de tu script (si no tienes acceso al php.ini ó no quieres modificarlo) con la función
session_set_cookie_params() Código PHP:
<?php
session_set_cookie_params(0);
session_start();
// resto de tu script
Si el comportamiento que buscas es que "no caduque" a pesar de que el navegador se cierre (la clásica opción de "recordarme") entonces debes guardar una cookie; se crea (antes de cualquier salida al navegador) mendiante la función
setcookie() y la lees con $_COOKIE['tu_cookie']....
Suerte!