【问题标题】:PHP Form Validation Showing Errors Before SubmissionPHP表单验证在提交前显示错误
【发布时间】:2014-04-23 08:28:32
【问题描述】:

我正在制作一个 PHP 和 MySQL 应用程序,以练习我对编程的新爱好。我有一个登录脚本; HTML表单如下:

<form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post">

            Username:

                <input type="text" name="username" maxlength="60"><br />



            Password:

                <input type="password" name="password" maxlength="60"><br />



           Confirm Password:

                <input type="password" name="password_confirm" maxlength="60"><br />


                <input type="submit" name="submit" value="Register"><br />

         </form>

这继续到 PHP 表单验证器:

<?php

$username_original = $_POST["username"];
$password_original = $_POST["password"];
$password_confirm_original = $_POST["password_confirm"];

       //This makes sure they did not leave any fields blank 

function FieldComplete($user, $password, $password_confirm) {
    if (!isset($user, $password, $password_confirm) &&
        $user && $password && $password_confirm == "" || " ") {
        $field_confirm = false;
    } else {
        $field_confirm = true;
    }


    if ($field_confirm == true) {
        echo "";
    } else {
        echo "You did not complete all the required fields.";
    }
}

FieldComplete($username_original, $password_original, $password_confirm_original);

?>

我意识到为此创建一个函数可能看起来有点无用,但它与我想要的结果一样接近。

但是,此代码显示错误“您没有填写所有必填字段”。在加载页面时。如果他们按下了注册按钮并且仍然有一个空白字段,我只希望显示该错误。

非常感谢任何建议或帮助。感谢 StackOverflow 社区!

【问题讨论】:

    标签: php html mysql forms validation


    【解决方案1】:

    如果您只想在提交按钮时运行 php 代码,那么您需要在页面顶部检查它

    if(isset($_POST["submit"]))
    {
       //form has been submitted
       //do validation and database operation and whatever you need
    } else {
      //form has not been submitted
      //print the form
    }
    

    【讨论】:

    • 非常感谢@Fabio。我花了无数个小时试图弄清楚这一点,它是如此简单!无论如何谢谢-ethan17458
    • 不客气老兄,如果对你有帮助,你可以考虑接受这个答案。
    • 我会的,说我要等 3 分钟才能做到。
    • if(isset($_POST["submit"])) 如何与主题相关?
    • @SamSaarian 如果你读到了他要问的问题
    【解决方案2】:

    除了法比奥的回答,你可以像这样改进你的代码:

    if(isset($_POST['submit'])){
        $username_original = $_POST["username"];
        $password_original = $_POST["password"];
        $password_confirm_original = $_POST["password_confirm"];
    
        $isComplete = FieldComplete($username_original, $password_original, $password_confirm_original);
        if(!$isComplete){
           echo "You did not complete all the required fields.";
        }
    }else{
    //display the form
    
    }
    
    
    
    function FieldComplete($user, $password, $password_confirm) {
        if (!isset($user, $password, $password_confirm) &&
            $user && $password && $password_confirm == "" || " ") {
            return false;
        } else {
            return true;
        }
    }
    

    【讨论】:

    • 谢谢,我没想到 StackOverflow 会这么有用,多么棒的社区。​​span>
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-20
    • 1970-01-01
    • 2020-01-22
    • 2016-12-30
    • 1970-01-01
    • 2014-09-01
    相关资源
    最近更新 更多