0

其他示例对我不起作用,很好奇如何让会话在 30 分钟后过期。我在设置会话的登录页面上有此代码,因此在填写表格后,您将转到下载页面。会话的目的(我知道它不是 100% 安全的)是防止人们直接进入下载页面。$_REQUEST 内容仅用于跟踪,我们不希望这些页面上的人不是来自专门形成的登录页面 url。我想让这个会话在 30 分钟后过期,这样用户就不能绕过注册页面继续返回下载页面。

<?php
    session_start();
    $_SESSION["loggedIn"] = 'Y';
    //the below is for google analytics tracking purposes, please ignore.
    if (isset($_REQUEST['utm_source']) && (!empty($_REQUEST['utm_source']))) {
?>
<!DOCTYPE html>
     <head></head>
     <body>
         //all page code here
      </body>
 </html>
 <?php
     } else {

     header( 'Location: http://www.anothersite.com' ) ;

    }
  ?>
4

1 回答 1

1

最好使用 cookie 并将过期时间设置为 ( time()+(30*60)) 或者您可以使用会话,例如:

//set session to now + 30 minute
$_SESSION['expire'] = time()+(30*60);

//check 
if($_SESSION['expire'] <= time()){
 //destroy session
}

但是有一个事实,当用户关闭浏览器窗口时,会话将自动终止。

于 2013-10-04T21:11:58.253 回答