Php session_start和session.gc_maxlifetime出现问题
我想设置session.gc\u maxlifest。但超时值本身在会话中。 我试着使用下面的代码,但不起作用Php session_start和session.gc_maxlifetime出现问题,php,session,session-timeout,Php,Session,Session Timeout,我想设置session.gc\u maxlifest。但超时值本身在会话中。 我试着使用下面的代码,但不起作用 session_start(); //Do some database and session operations ini_set( 'session.gc_maxlifetime', $_SESSION['timeout'] ); session_start(); 如果您试图通过会话超时来设置session.gc_maxlifetime,我想这种方法是完全错误的 这是因为会
session_start();
//Do some database and session operations
ini_set( 'session.gc_maxlifetime', $_SESSION['timeout'] );
session_start();
如果您试图通过会话超时来设置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;
我用下面的代码实现了这一点
$arrMixTempSession = $_SESSION;
session_destroy();
ini_set('session.gc_maxlifetime', $_SESSION['timeout'] * 60 );
session_start();
$_SESSION = $arrMixTempSession;
您有php会话的动态更改超时吗?为什么?经过长时间的处理后,我从数据库获得了超时秒数。数据库超时与php会话超时有什么关系?您确定没有获得最大执行超时吗?在任何情况下,为什么不在
php.ini
上全局设置相应的超时?我们无法访问php.ini。此外,用户智能超时存储在数据库中。用户登录后,我会获得超时值。我会从设置该值的任何其他应用程序中获取应用程序中的$\u SESSION['timeout']。但这两个应用程序的会话是相同的!是吧??好啊我正在编辑我的答案,试试这样的方法。也许,这应该可以做到。wait.User-wise超时存储在数据库中。一旦用户在我得到超时值后登录,我想说的是,在会话运行时,您不能更改会话设置。为此,首先需要关闭会话,然后可以更改它们。是的,你是对的。我想在不丢失会话值的情况下关闭会话->设置超时->使用会话\ u start()启动会话。可能吗?