这是我的 registerFormOne.php 代码:
<?php session_start();
require("validationLibrary.php");
$validForm = true;
?>
<html>
<head>
<title>Registration Form - 1 of 2</title>
</head>
<body>
<h1>Registration - Part 1 of 2</h1>
<p>Please fill in all the required information before submitting the information.</p>
<form action="registerFormTwo.php" method="post">
<dt>First Name:</dt>
<dd><input type="text" name="firstName" /></dd><br />
<dd>
<?php
if(isset($_POST['firstName'])){
if(!validateRequired($_POST['firstName'])){
$validForm = false;
}
}
?>
</dd><br />
<dt>Last Name:</dt>
<dd><input type="text" name="lastName" /></dd><br />
<dd>
<?php
if(isset($_POST['lastName'])){
if(!validateRequired($_POST['lastName'])){
$validForm = false;
}
}
?>
</dd><br />
<dt>EMail:</dt>
<dd><input type="text" name="email" /></dd><br />
<dd>
<?php
if(isset($_POST['email'])){
if(!validateEmail($_POST['email'])){
$validForm = false;
}
}
?>
</dd><br />
<dt>Age:</dt>
<dd><input type="text" name="age" /></dd><br />
<dd>
<?php
if(isset($_POST['age'])){
if(!validateNumber($_POST['age'])){
$validForm = false;
}
}
?>
</dd><br />
<dt>Date of Birth:</dt>
<dd><input type="text" name="dateOfBirth" /></dd><br />
<dd>
<?php
if(isset($_POST['dateOfBirth'])){
if(!validateRequired($_POST['dateOfBirth'])){
$validForm = false;
}
}
?>
</dd><br />
<dt>Gender:</dt>
<dd>Masculino <input type="radio" value="M" name="gender" checked/>
Femenino <input type="radio" value="F" name="gender" />
</dd>
<dt><input type="submit" /></dt>
</form>
</body>
</html>
这是我用作类的validationLibrary.php:
<?php
function validateRequired($field){
if($field == ""){
echo "Information for this field is required.";
return false;
}
else{
return true;
}
}
function validateNumber($field){
if(!is_numeric($field)){
echo "Only numeric values are allowed in this field.";
return false;
}
else{
return true;
}
}
function validateEmail($field){
$regexp = "/^[_\.0-9a-zA-Z-]+@([0-9a-zA-Z-][0-9a-zA-Z-]+\.)+[a-zA-Z](2,6)$/";
if(!preg_match($regexp,$field)){
echo "Please type in a valid email address.";
return false;
}
else{
return true;
}
}
?>
我需要再次重新加载 formOne,并且如果变量 $validForm 为 false,则不转到 formTwo。
我知道如何做到这一点。非常感谢您的帮助。 :)
最佳答案
将表单的操作属性更改为提交给其自身,而不是表单 #2。仅当您的验证代码通过时,您才会重定向到带有位置 header() 的表单 #2。
关于php - 如何验证表单,但如果出现错误,则让它返回到相同的表单?非常新手的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2328778/