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 — Zwróć bieżący czas przedawnienia pamięci podręcznej
Opis
$nowy_czas
] )
session_cache_expire() zwraca bieżące ustawienie
session.cache_expire. Zwrócona wartość podana jest w
minutach. Jeśli podany zostanie parametr
nowy_czas, bieżący czas przedawnienia
zostanie zamieniony na nowy_czas.
Czas przedawnienia jest ustawiany na wartość 180 przechowywaną w session.cache_limiter w momencie startu. W związku z tym niezbędne jest wywołanie session_cache_expire() dla każdego żądania pobrania strony (zanim zostanie wywołane session_start()).
Przykład #1 Przykład użycia session_cache_expire()
<?php
/* ustaw ogranicznik pamięci podręcznej na 'private' */
session_cache_limiter('private');
$cache_limiter = session_cache_limiter();
/* ustaw czas przedawnienia pamięci podręcznej na 30 minut */
session_cache_expire(30);
$cache_expire = session_cache_expire();
/* rozpocznij sesję */
session_start();
echo "Ogranicznik pamięci podręcznej to $cache_limiter<br />";
echo "Znajdujące się w pamięci podręcznej strony sesyjne przedawnią się " .
"po $cache_expire minutach";
?>
Informacja: Ustawienie
nowy_czasma efekt tylko jeśli session.cache_limiter ma wartość różną od nocache.
Patrz także: session.cache_expire, session.cache_limiter i 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.
