ho seguito la risposta da qui, ma non ha funzionato per me:
Is possible to keep session even after the browser is closed?Come mantenere aperta una sessione dopo che il browser è stato chiuso in PHP?
Ecco il codice che ho provato:
$session_life = 2592000; // 30 days
session_set_cookie_params($session_life);
session_name('my_cart');
session_start();
// update the session_life
setcookie(session_name(),session_id(),time()+$session_life);
Il problema è che ogni volta che il browser è chiuso ho ancora un nuovo session_id, non quello vecchio.
Sto utilizzando un database per memorizzare gli elementi in "my_cart" e il session_id è appena utilizzato per identificare l'utente per mostrare loro il proprio carrello.
Qual è il modo migliore per mantenere vivo il carrello degli utenti per 30 giorni?
Questo è il codice ho finito con:
$cart_name = "my_cart";
$cart_life = 2592000; // 30 days
session_start();
if (isset($_COOKIE[$cart_name])) {
session_id($_COOKIE[$cart_name]);
}
setcookie($cart_name, session_id(), time()+$cart_life);
Forse questo è un lavoro per i cookie e non per le sessioni. – mawburn
La sessione può anche scadere sul server. Il parametro php [session.gc_maxlifetime] (http://php.net/manual/en/session.configuration.php#ini.session.gc-maxlifetime) definisce il tempo massimo in cui le informazioni sulla sessione vengono conservate prima che sia spazzatura raccolto. –