如何在用户不活动30分钟后结束PHP会话?
大家好!我是PHP新手,正在开发一个用户登录的网站。我有一个简单的会话系统:登录后,我将数据保存在`$_SESSION`中。但我注意到,即使用户关闭浏览器一小时后回来,会话仍然没有结束——他仍然处于登录状态。我需要会话在用户最后一次操作(不是登录时间,而是最后一次点击或请求)后30分钟自动过期。
我读过关于`session.gc_maxlifetime`和`session.cookie_lifetime`参数的资料,但它们的效果并不如我所愿。例如,我设置了:
```php
ini_set('session.gc_maxlifetime', 1800);
ini_set('session.cookie_lifetime', 1800);
session_start();
```
但这似乎只影响服务器上会话文件的生存时间和浏览器中的cookie,而不影响用户的活动。如果用户只是不关闭浏览器,由于垃圾回收器不会立即触发,会话可能会比预期存活更长时间。如何正确实现?