php中的会话超时程序不工作



在多个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!'; 
    }
?>

我哪里错了?

第一件事我认为你有一个打字错误

 <form nmethod="post"

方法之前还有额外的"n",请将其删除。

第二件事是,每当您想使用会话中的任何内容时,都必须使用start_session()。

相关内容

最新更新