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 — Liefert die aktuelle Cache-Verfallszeit
Beschreibung
$new_cache_expire
] )session_cache_expire() gibt die aktuelle Einstellung von session.cache_expire zurück.
Die Cache-Verfallszeit wird zu Beginn einer Anfrage auf den standardmäßigen Wert von 180, der in session.cache_expire gespeichert ist, zurückgesetzt. Folglich müssen Sie session_cache_expire() bei jeder Anfrage (und vor dem Aufruf von session_start()) aufrufen.
Parameter-Liste
-
new_cache_expire -
Wenn
new_cache_expireangegeben wurde, wird die aktuelle cache_expire durchnew_cache_expireersetzt.Hinweis: Das Setzen von
new_cache_expirebewirkt nur dann etwas, wenn session.cache_limiter auf einen anderen Wert als nocache gesetzt ist.
Rückgabewerte
Gibt die aktuelle Einstellung von session.cache_expire zurück. Der zurückgegebene Wert wird in Minuten angegeben und ist standardmäßig auf 180 gesetzt.
Beispiele
Beispiel #1 session_cache_expire() Beispiel
<?php
/* setzen der Cacheverwaltung auf 'private' */
session_cache_limiter('private');
$cache_limiter = session_cache_limiter();
/* setzen der Cache-Verfallszeit auf 30 Minuten */
session_cache_expire(30);
$cache_expire = session_cache_expire();
/* starten der Session */
session_start();
echo "Die Cacheverwaltung ist jetzt auf $cache_limiter gesetzt<br />";
echo "Die Session wird für $cache_expire Minuten im Cache gespeichert";
?>
Siehe auch
- session.cache_expire
- session.cache_limiter
- session_cache_limiter() - Liefert und/oder setzt die aktuelle Cacheverwaltung
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.
