如何设置PHP会话生命周期为30分钟并自动结束?
大家好!我是PHP新手,遇到了会话管理的问题。我需要让用户会话在无活动30分钟后自动过期。我读了文档,但对配置感到困惑。
以下是我尝试过的:
```php
// 在每个页面开头
session_start();
// 尝试通过ini_set设置生命周期
ini_set('session.gc_maxlifetime', 1800);
ini_set('session.cookie_lifetime', 1800);
```
但这不起作用——即使过了一小时,会话仍然保持活动。我这样检查用户最后活动时间:
```php
if (isset($_SESSION['LAST_ACTIVITY']) && (time() - $_SESSION['LAST_ACTIVITY'] > 1800)) {
session_destroy();
session_unset();
header('Location: login.php');
exit;
}
$_SESSION['LAST_ACTIVITY'] = time();
```
但这会导致即使活跃用户长时间不刷新页面也被踢出。如何正确实现正好30分钟不活动的会话超时?