我創建了一個使用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,他們是否在表單中輸入了正確的詳細信息 –