3
我正在用Silex構建一個小型後臺項目,我正在使用PdoSessionHandler
將會話存儲在數據庫中。我已經成功地將會話存儲在數據庫中,但似乎將$ app變量的參數cookie_lifetime
設置爲更改cookie的過期時間,但不更改數據庫中的會話生存期。無法使用PDOSessionHandler設置會話生存期Silex
$app->register(new Silex\Provider\SessionServiceProvider(), [
'session.storage.options' => [
'name' => '_PROJECTBACKOFFICE',
'cookie_lifetime' => 15552000,
],
]);
後考慮看看的PdoSessionHandler
的代碼看起來像在數據庫中的會話生命週期的價值需要從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);
所以,看起來像增加會話生命週期的唯一方法是通過更改php.ini設置。有沒有人成功地以編程方式改變數據庫的生命週期?
我已經做了與PHP的功能'ini_set',但我一直在尋找的東西,這並不意味着改變php.ini配置。 – Khriz
您不需要更改'php.ini',只需創建一個'.htaccess'文件即可。 –
我知道,但是如果我想爲不同的用戶使用不同的會話值...我想要一個編程解決方案。 – Khriz