作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在使用 Silex 构建一个小型后台项目,我正在使用 PdoSessionHandler
将 session 存储在数据库中。我已经成功地将 session 存储在数据库中,但似乎将 cookie_lifetime
参数设置为 $app 变量会更改 cookie 的到期时间,但不会更改数据库中的 session 生命周期。
$app->register(new Silex\Provider\SessionServiceProvider(), [
'session.storage.options' => [
'name' => '_PROJECTBACKOFFICE',
'cookie_lifetime' => 15552000,
],
]);
查看 PdoSessionHandler
的代码后,数据库中的 session 生命周期值似乎采用 php.ini 设置 session.gc_maxlifetime
中的值:
$maxlifetime = (int) ini_get('session.gc_maxlifetime');
并将值存入数据库字段
$mergeStmt = $this->pdo->prepare($mergeSql);
$mergeStmt->bindParam(':id', $sessionId, \PDO::PARAM_STR);
$mergeStmt->bindParam(':data', $data, \PDO::PARAM_LOB);
$mergeStmt->bindParam(':lifetime', $maxlifetime, \PDO::PARAM_INT);
因此,看起来增加 session 生命周期的唯一方法是更改 php.ini 设置。有没有人成功地以编程方式改变了数据库中的生命周期?
最佳答案
你可以在.htaccess
中设置,这是唯一的方法。它必须高于 SessionServiceProvider()
设置中设置的生命周期:
php_value session.gc_maxlifetime "3600"
关于php - 无法使用 PDOSessionHandler Silex 设置 session 生存期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33524329/
我正在使用身份服务器 3 保护 Web 应用程序。我的应用程序分为 2 个 oidc 客户端,一个 ASP.Net MVC 客户端和一个使用 oidc-client javascript 库的 jav
我正在使用 Silex 构建一个小型后台项目,我正在使用 PdoSessionHandler 将 session 存储在数据库中。我已经成功地将 session 存储在数据库中,但似乎将 cookie
我是一名优秀的程序员,十分优秀!