php中的会话超时程序无效

时间:2014-04-13 08:38:34

标签: php forms session session-timeout

我正在学习会话处理,同时在多个php页面之间提交表单数据。 举个简单的例子,我有一个php表单myform.php,要求用户输入密码并指向myaction.php。我想在用户输入密码之前启动会话。如果他在一分钟内输入密码为1234,则显示“有效”。如果他在1分钟后输入密码,则应显示“会话超时”。 这是我的代码不起作用。

myfrom.php

<?php
    session_start();
    $_SESSION['start'] = time();
    $_SESSION['expire'] = $_SESSION['start'] + (01 * 60);
?>

<html>
    <form nmethod="post" action="myaction.php">
    <input type="text" name="myvalue"/>
    <input type="submit" value="SignIn" name="submit1">
    </form>
</html>

myaction.php

<?php
    if ($_POST['submit1']) 
    {
        $v1 = "1234";
        $v2 = $_POST['myvalue'];
        $_SESSION['now'] = time();  
        if ($_SESSION['now'] > $_SESSION['expire']) 
        {   
             echo 'Session Timeout!';
             header('refresh:05;Location: http://localhost/myform.php');
        }
        else if(($_SESSION['now'] <= $_SESSION['expire']) && ($v1==$v2))
            echo 'Valid Password!';
       else 
            echo 'Invalid password!'; 
    }
?>

我哪里出错了?

1 个答案:

答案 0 :(得分:0)

首先我认为你有一个错字

 <form nmethod="post"

在方法之前还有“n”,将其删除。

每当你想要使用session中的任何东西时,你必须使用start_session()。