下拉菜单中的php验证不正确

时间:2012-11-29 01:03:02

标签: php validation

我在下面有一个代码,它在下拉菜单中显示学生详细信息,然后进行php验证,以查看是否从下拉菜单中选择了学生:

$sql = "SELECT StudentUsername, StudentForename, StudentSurname FROM Student ORDER BY StudentUsername"; 

$sqlstmt = $mysqli->prepare($sql);

$sqlstmt->execute(); 

$sqlstmt->bind_result($dbStudentUsername, $dbStudentForename, $dbStudentSurname);

$students = array(); // easier if you don't use generic names for data 

$studentHTML = "";  
$studentHTML .= '<select name="students" id="studentsDrop">'.PHP_EOL; 
$studentHTML .= '<option value="">Please Select</option>'.PHP_EOL;  

$outputstudent = "";

while($sqlstmt->fetch()) 
{
    $student = $dbStudentUsername;
    $firstname = $dbStudentForename;
    $surname = $dbStudentSurname; 

    $studentHTML .= "<option value='" . $student . "'>" . $student . " - " . $firstname . " " . $surname . "</option>" . PHP_EOL;  
} 

$studentHTML .= '</select>'; 

$errormsg = (isset($errormsg)) ? $errormsg : '';

if(isset($_POST['resetpass'])) {
    //get the form data
    $studentdrop = (isset($_POST['students'])) ? $_POST['students'] : '';

    if($studentdrop = "") {
        $errormsg = "Student is Selected";
    }
    else{
        $errormsg = "You must Select a Student";
    }

}

我遇到的问题是,即使我从下拉菜单中选择了一名学生,它仍会显示一条消息,指出“你必须选择一名学生”。

假设发生的情况是,如果用户没有选择学生,或者换句话说,当他们提交了表单并且下拉菜单仍然在“请选择”选项上时,则显示消息说明用户必须选择学生,否则,如果用户确实从下拉菜单中选择了学生,则显示已选择学生的消息。

1 个答案:

答案 0 :(得分:4)

您应该if($studentdrop == ""){同等地使用if($studentdrop != ""){,或者if($studentdrop = ""){同等地使用$studentdrop。请注意比较运算符。

如果您使用{{1}},则表示您将空字符串分配给变量{{1}}。