我正在尝试验证表单字段。
函数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>
答案 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"; }