我正在学习会话处理,同时在多个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!';
}
?>
我哪里出错了?
答案 0 :(得分:0)
首先我认为你有一个错字
<form nmethod="post"
在方法之前还有“n”,将其删除。
每当你想要使用session中的任何东西时,你必须使用start_session()。