我可以在此脚本中添加Cookie注销吗?

时间:2011-03-30 10:49:17

标签: php session-cookies

我正在使用此脚本登录用户,我想知道我是否可以添加一个简单的cookie,它将在30分钟不活动后自动注销用户。

...
if($count){
        session_start();
       session_regenerate_id();
        $_SESSION['SESS_USERNAME'] = $myusername;
        $_SESSION['SESS_PASSWORD'] = $mypassword;
        session_write_close();
       header("location: login_success.php");
        }

连接到:

<?php
 session_start();
 if(!isset($_SESSION['SESS_USERNAME']) || !isset($_SESSION['SESS_PASSWORD']) ||     (trim($_SESSION['SESS_USERNAME']) == '')) {
            //someone's not logged in
    header("location: index.php"); //it's suppose to actually be there
            exit();
  }
 ?>

然后结束会话:

<?php 
session_start();
session_destroy();
?> 
这可能吗?这个脚本不在网上,因为我对PHP的了解不多,所以如果它很难我也不会打扰!

谢谢你的时间!

3 个答案:

答案 0 :(得分:1)

您可以在脚本顶部发出以下命令来设置超时:

ini_set('session.gc_maxlifetime', 30*60); // for 30 min timeout

有关详细信息,请参阅manual page。在这段时间之后,PHP将自动垃圾收集会话。

答案 1 :(得分:0)

会话会在一段时间后自动过期 - 这会导致您的非活动用户退出。


在此期间,请参阅session.gc_maxlifetime指令:您需要将其设置为1800秒。

这可以在您的php.ini文件中完成,用于服务器范围的配置,或使用以下代码行:

ini_set('session.gc_maxlifetime', 1800);

答案 2 :(得分:0)

$_SESSION['expiry'] = time() + 30 * 60;

if ($_SESSION['expiry'] < time()) {
    session_destroy();
}