Avatar ·

如何设置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分钟不活动的会话超时?