The manual probably doesn't stress this enough:
** This has nothing to do with lifetime of a session **
Whatever you set this setting to, it won't change how long sessions live on your server.
This only changes HTTP cache expiration time (Expires: and Cache-Control: max-age headers), which advise browser for how long it can keep pages cached in user's cache without having to reload them from the server.
session_cache_expire
(PHP 4 >= 4.2.0, PHP 5)
session_cache_expire — Ritorna il valore corrente di scadenza della cache
Descrizione
$nuova_scadenza_cache
] )
session_cache_expire() ritorna il valore corrente di
session.cache_expire. Il valore ritornato deve essere espressio
in minuti, di default 180. Se si assegna nuova_scadenza_cache
, il valore corrente di scadenza della cache viene sostituito con
nuova_scadenza_cache.
La scadenza della cache viene reimpostata al valore predefinito di 180 memorizzato in session.cache_limiter ad ogni richiesta di pagina. Quindi, è necessario chiamare session_cache_expire() in ogni pagina (e prima di invocare session_start()).
Example #1 session_cache_expire() esempio
<?php
/* assegna il limite della cache su 'private' */
session_cache_limiter('private');
$cache_limiter = session_cache_limiter();
/* imposta la scadenza della cache su 30 minuti */
session_cache_expire(30);
$cache_expire = session_cache_expire();
/* avvia la sessione */
session_start();
echo "Il limite della cache ora è impostato su $cache_limiter<br />";
echo "Le pagine di sessione nella cache scadranno dopo $cache_expire minutes";
?>
Nota: Impostazione
nuova_scadenza_cacheè utile soltanto, se session.cache_limiter è impostato su un valore diverso da nocache.
Vedere inoltre le impostazioni di configurazione session.cache_expire, session.cache_limiter e session_cache_limiter().
I've encountered the same problem of loosing focus when using IE and a javascript window.location.refresh/replace().
After fusing around I found that a <meta http-equiv="refresh" content="600"> works without move the focus on the parent frame's form. The down side is loading up the browser history and an annoying 'click' in IE on the page load.
What most people also don't know, is that most Linux distributions (Debian and Ubuntu for me atleast) have a cronbjob that cleans up your session dir using the value set in the global /etc/php5/php.ini (which defaults to 24mins). So even if you set a value larger in your scripts, the cronbjob will still cleanup sessions using the global value.
If you run into that situation, you can set the global value higher in /etc/php5/php.ini, disable the cronjob or even better, do your own session cleanup in a non-systemwide directory or a database.
