系统有自带设置可以实现session超时
- session.gc_maxlifetime = 1440 #(PHP5默认24分钟)
这里你可以随便设置一下过期时间。但是有人说设置以后,好象不起作用!其实不是不起作用,而是因为系统session回收机制是按机率启动的,可能在某一个长时间内都没有被启动。
以下是我的思路:
首先设置一个登录正确的开始时:$_SESSION['LOGIN_TIME'] = time();
然后判断现在的时间: $times = time();
最后比较两个时间,比如我们将登录超时设置成120分钟,即7200秒, if (($times – $_SESSION['LOGIN_TIME'] ) > 7200)
如果大于就清空登录缓存,
如果小于则将登录时间设置成现在时间。这样就避免在操作过程中出现超时的情况了,以下是
- <?php
- if (!session_id())
- session_start();
- if (!isset($_SESSION['USER_KEY'])) {
- header("Location: Main.php?do=logIn");
- } else if ($_SESSION['USER_KEY']['LOGIN_TIME']) {
- if (time() - $_SESSION['USER_KEY']['LOGIN_TIME'] > 7200) //120 mins
- {
- unset($_SESSION);
- header("Location: Main.php?do=logIn&redirect=" . $_SERVER['REQUEST_URI']);
- } else {
- $_SESSION['USER_KEY']['LOGIN_TIME'] = time();
- }
- }
- ?>
时间: 2024-09-08 02:39:57