用于检查输入字段是否为空的函数

时间:2018-06-02 09:12:03

标签: php function

我正在尝试验证表单字段。

函数validate_emp检查输入字段是否为空。我想知道它为什么不起作用。

$first_name = $middle_name = $last_name = $gender = $email = "";
$first_nameErr = $middle_nameErr = $last_nameErr = $genderErr = $emailErr="";

function validate_emp($input_name, $error_mess, $field_name){
    if(empty($_POST[$field_name])){
        $error_mess = "This field is must not empty.";
    }else{
        $input_name = $_POST[$field_name];
    }
}

if(isset($_POST["btnregister"])){
    validate_emp($first_name, $first_nameErr, "first_name");
    validate_emp($middle_name, $middle_nameErr, "middle_name");
    validate_emp($last_name, $last_nameErr, "last_name");
    validate_emp($gender, $genderErr, "gender");
    validate_emp($email, $emailErr, "email");
}

这是我创建的表单

<form method="POST">
    First Name: <input type="text" name="first_name" placeholder="First Name" value="<?php echo $first_name ?>"> <span class="error"> <?php echo $first_nameErr ?> </span><br>
    Middle Name: <input type="text" name="middle_name" placeholder="Middle Name" value="<?php echo $middle_name ?>"> <span class="error"> <?php echo $middle_nameErr ?> </span><br>
    Last Name: <input type="text" name="last_name" placeholder="Last Name" value="<?php echo $last_name ?>"> <span class="error"> <?php echo $last_nameErr ?> </span><br>
    <select name="gender">
        <option name="gender" value="">Gender</option>
        <option name="gender" <?php if($gender == "Male") { echo "Selected"; }?> value="Male">Male</option>
        <option name="gender" <?php if($gender == "Female") { echo "Selected"; }?> value="Female">Female</option>
    </select> <span class="error"> <?php if ($gender == "") {echo $genderErr;} ?> </span> <br>
    Email: <input type="text" name="email" value="<?php echo $email ?>"><span class="error"> <?php echo $emailErr ?> </span><br>
    <input type="submit" name="btnregister" value="Register">
</form>

2 个答案:

答案 0 :(得分:0)

你没有从函数返回任何东西尝试返回一些东西。

 function validate_emp($input_name, $error_mess, $field_name){

        if(empty($_POST[$field_name])){
            $error_mess = "This field is must not empty.";
        }else{
            $input_name = $_POST[$field_name];
        }

       return // 

    }

答案 1 :(得分:0)

我认为问题是当你这样做时:

    validate_emp($first_name, $first_nameErr, "first_name");
    validate_emp($middle_name, $middle_nameErr, "middle_name");
    validate_emp($last_name, $last_nameErr, "last_name");
    validate_emp($gender, $genderErr, "gender");
    validate_emp($email, $emailErr, "email");

函数的第一个和第二个参数使用的是未定义的变量。

我可以看到你通过引用将它们用作变量,为了做到这一点,你必须使用它们和&amp;在他们之前,如果我在哪里,我将返回空或价值并评估:

       function validate_emp($field_name){

            if(empty($_POST[$field_name])){
                $output = "";
            }else{
                $output = $_POST[$field_name];
            }
            return $output;
        }

然后在函数之外:

$first_name = validate_emp("first_name");
if ($first_name == "") { echo "$first_name cannot be empty"; }