使会话以php结束

使会话以php结束,php,session,Php,Session,嘿,伙计们,我对php还不太熟悉。我有一个输入表单,当用户在该输入表单中键入内容时,它会显示出来。我想做的是,一分钟后,我希望会话过期并重定向到另一个网站..我知道这可以用javascript轻松完成..但我想用php会话完成..所以我写的代码是 <?php if ( isset($_POST['firstname'])) { echo $_POST['firstname']; session_start(); $_SESSION['logintime'] = time();

嘿,伙计们,我对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语句不起作用


希望你们能帮帮我。任何帮助都将不胜感激。谢谢。。这是行不通的。PHP是服务器端的,所以在PHP能够控制任何事情之前,您需要像处理页面加载一样与服务器交互。实现您所描述内容的唯一方法是使用Javascript

以下是一些伪代码,即根本未测试,以演示:

PHP

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();
?>

会话_start必须位于任何输出之前。echo$_POST['firstname']可能重复;会议开始;我想您已经阅读了手册,并且知道,在session_startYes@phplover之前没有发生任何输出。正如其他人提到的那样,超过这一点,你需要一些PHP以外的东西来计时,因为PHP是服务器端的,一旦你的页面呈现出来,它就不知道服务器上发生了什么。伪代码post@phplover我不明白你所说的腰带和吊带是什么意思。为什么你要为此制作一个单独的文件???我认为一个文件就足够了。腰带和吊带意味着我正在尽我所能确保会话被破坏。单独的文件用于可维护性。但此代码不起作用???。您使用了ifcurrentTime-loginTime>60,它与'iftime-$\u会话['loginTime']>60相同{`?就像我说的,这是伪代码。你说不工作是什么意思?有错误报告吗?你的项目中包括了jQuery吗?当我尝试在php文件中添加js代码,如echo“the js code”时,它抛出错误
<?php
    session_start();
    // belt and suspenders
    session_unset();
    unset($_SESSION);
    session_destroy();
?>