在多个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()。