php - 如何验证表单,但如果出现错误,则让它返回到相同的表单?非常新手的问题

标签 php validation forms

这是我的 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/> &nbsp;&nbsp;
                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/

相关文章:

asp.net-mvc-3 - 如何在 MVC 中禁用数据注释所需的字段验证器

javascript - 如何使用 AJAX 传递 2 个值以与 PHP 进行比较

javascript - 使用提交按钮提交到同一表单并使用值运行 SQL 查询

尝试插入几个值时 PHP/MySQL 语法错误

php - 防止 xss 攻击的更好方法

php - 是否有必要在 laravel 迁移中定义外键约束?

python - 如何确保我的 ttk.Entry 的无效状态在失去焦点时不被清除?

java - 根据 Spring MVC 中服务的结果验证单个字段

php - jQuery 更新隐藏的输入值,但不传递给 POST 变量

javascript - 从 session 数组中删除项目 Jquery Ajax