Entiendo que PHP almacena el ID de sesión de un usuario en una cookie llamada "PHPSESSID" que se almacena en el navegador del cliente y se compara con la sesión en el servidor para poder relacionar el 2. Después de cerrar el navegador desaparece pero la cookie en el cliente permanece. ¿Es posible usar esta cookie para restaurar la sesión anterior? ¿O todos los datos de la sesión se eliminan del servidor en el momento en que el cliente cierra su navegador?¿Cómo restaurar una sesión de PHP?
que tenía esto en mi página en primer lugar:
session_start();
$_SESSION['message'] = 'Hello';
echo $_SESSION['message']; // outputs hello
entonces me cambiaron la página a:
$old_session = session_id();
session_id($old_session);
session_start();
echo $_SESSION['message'];
Entonces cerré el navegador y abierto de nuevo a esta página y tengo estos errores:
Warning: session_start() [function.session-start]: The session id is too long or contains illegal characters, valid characters are a-z, A-Z, 0-9 and '-,' in C:\xampp\htdocs\localhost\test.php on line 5
Notice: Undefined index: message in C:\xampp\htdocs\localhost\test.php on line 7
¿Cómo recupera exactamente la información de la sesión anterior después de cerrar el navegador? ¿Es posible?
'Después de cerrar el navegador, la información de la sesión desaparece pero la cookie en el cliente permanece. --- no es correcto. En la mayoría de los casos, la duración de la cookie de ID de sesión se establece en "antes de que el navegador no se cierre". '$ old_session = session_id(); session_id ($ old_session); '--- este código no tiene sentido – zerkms
http://php.net/manual/en/session.configuration.php#ini.session.gc-maxlifetime – j08691
A menos que esté mirando a través de la ventana del usuario, su servidor no tendrá idea cuando cierre su navegador (AJAX tampoco lo garantizará). El servidor simplemente elimina los datos de sesión que se consideran "antiguos". – webbiedave