我创建了一个使用IF .. ELSE以简单形式验证数据的测试表单。这工作正常,任何验证消息或错误都发布到同一页面(userform.php),以通知用户成功或其他。使用'IF .. ELSE'来更改变量并在'表单动作...'中使用它''
我想现在要做的是把用户带到不同的页面上,成功完成表单。这是我的代码到目前为止:
<?php
if (isset($_POST['email'], $_POST['password'])) {
$errors = array();
$firstname = $_POST['firstname'];
$lastname = $_POST['lastname'];
$email = $_POST ['email'];
$password = $_POST ['password'];
if (empty ($firstname) || empty ($lastname) || empty ($email) || empty ($password)) {
$errors [] = "Please complete the form";
}
if (empty($email)) {
$errors [] = "You must enter an email address";
}
if (empty($password)) {
$errors [] = "You must enter a password";
}
if (filter_var($email, FILTER_VALIDATE_EMAIL) === FALSE){
$errors[] = "Please enter a valid email address";
}
}
if (!empty ($errors)) {
foreach ($errors as $error) {
echo '<strong>', $error ,'</strong><br />';
$result = "userform.php";
}
} else {
$result = "confirm.php";
}
?>
<form action="<?php echo $result ?>" method="post">
这个想法是,用户成功或否则在完成窗体更改$结果变量在表单操作中使用。上面的代码不起作用,那我该怎么做呢? 它甚至有可能吗?
它是如何工作的?它被重定向,但没有传递值?根本不会被重定向? – Mido
您意识到由于PHP是预处理器,因此需要提交一次表单以验证所有内容并设置正确动作,然后再次发布到上述动作? –
对不起!在上面的位置添加$ result变量只是看到用户重定向到confirm.php,他们是否在表单中输入了正确的详细信息 –