在php中结束会话

时间:2015-02-06 14:53:21

标签: php session

嘿伙计们实际上是php新手。我有一个输入表单,当用户在输入表单中键入内容时,它会显示。我想要做的是,一分钟之后我希望会话过期并重定向到另一个网站..我知道这可以用javascript轻松完成。但我想用php会话来做..所以我写的代码是

<?php
if ( isset($_POST['firstname'])) {
  echo $_POST['firstname'];
  session_start();
  $_SESSION['logintime'] = time();
  if(time() - $_SESSION['logintime'] > 60) {
     header('Location: http://www.google.com/');
  } else {
    echo 'blah';
  }
}
?>

当我运行代码时,我得到inputname和blah(这意味着第二个if语句不起作用)。

希望你们能帮助我。任何帮助都会受到赞赏。谢谢

2 个答案:

答案 0 :(得分:0)

&#34;一分钟后#34; ..这不行。 PHP是服务器端,所以在PHP可以控制任何东西之前,你需要与服务器交互(比如加载页面)。执行您所描述的内容的唯一方法是使用Javascript。

答案 1 :(得分:0)

以下是一些伪代码,即未经过测试,以证明:

PHP

<?php
session_start();
$_SESSION['logintime'] = time(); // when the login occurs
?>

的JavaScript

<script>
// using jQuery
$(function(){
    var loginTime = <?php echo $_SESSION['logintime`]; ?>; // places PHP variable into JS variable
    var testSession = setInterval(function(){
        var currentTime = Date.now() * 1000; // convert to UNIX time for easy math
        if((currentTime - loginTime) > 60) {
            // ajax to request session unset
            $.post('clear_session.php', function() {
                console.log('session destroy request');
            });
            window.location.href = 'wherever.html'; // redirect
        } 
    }, 1000); //test each second
});
</script>

clear_session.php

<?php
    session_start();
    // belt and suspenders
    session_unset();
    unset($_SESSION);
    session_destroy();
?>