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.
(PHP 4 >= 4.2.0, PHP 5)
session_cache_expire — Return current cache expire
session_cache_expire() returns the current setting of session.cache_expire.
The cache expire is reset to the default value of 180 stored in session.cache_expire at request startup time. Thus, you need to call session_cache_expire() for every request (and before session_start() is called).
new_cache_expireis given, the current cache expire is replaced with
new_cache_expireis of value only, if session.cache_limiter is set to a value different from nocache.
Returns the current setting of session.cache_expire. The value returned should be read in minutes, defaults to 180.
Example #1 session_cache_expire() example
/* set the cache limiter to 'private' */
$cache_limiter = session_cache_limiter();
/* set the cache expire to 30 minutes */
$cache_expire = session_cache_expire();
/* start the session */
echo "The cache limiter is now set to $cache_limiter<br />";
echo "The cached session pages expire after $cache_expire minutes";
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.