我想设置session.gc_maxlifetime。但是超时的值本身就在会话中。 我尝试使用下面的代码,但它确实无效。
session_start();
//Do some database and session operations
ini_set( 'session.gc_maxlifetime', $_SESSION['timeout'] );
session_start();
答案 0 :(得分:0)
如果您尝试通过会话超时设置session.gc_maxlifetime,我想这种方法是完全错误的,
这是因为会话设置应该在会话开始之前定义。
试试这个 -
$timeout=$_SESSION['timeout']
$old_session_id = session_id();
# write and close current session
session_write_close();
ini_set('session.gc_maxlifetime', $timeout);
# now we can switch the session over, capturing the old session name
$old_session_name = session_name($session_name);
session_id($session_id);
session_start();
# get the desired session data
$session_data = $_SESSION;
答案 1 :(得分:0)
我使用以下代码实现了这一目标。
$arrMixTempSession = $_SESSION;
session_destroy();
ini_set('session.gc_maxlifetime', $_SESSION['timeout'] * 60 );
session_start();
$_SESSION = $arrMixTempSession;