我曾经编写过PHP代码,但今天我第一次需要验证一个下拉框,惊讶地发现我实际上不知道该怎么做。基本上这是我的HTML代码:(忽略代码中的会话部分)
<label for="gender">Gender</label>
<select id="gender" name="gender" class="select option">
<option<?php if( $_SESSION['gender'] === "" ) { echo ' selected="selected"'; } ?> value=""> </option>
<option<?php if( $_SESSION['gender'] === "Male" ) { echo ' selected="selected"'; } ?> value="Male">Male</option>
<option<?php if( $_SESSION['gender'] === "Female" ) { echo ' selected="selected"'; } ?> value="Female">Female</option>
</select>
基本上,我编写了下面的php代码,认为它会验证它,但是无论我是否使用Firebug在浏览器中篡改值,它始终返回性别无效的错误。
我的编辑个人资料表单的其余部分都正常工作,选择框也是如此(没有验证),但是显然我需要验证它,因为男性、女性或空白在用户个人资料数据库中更新。我会使用mysql_real_escape string等等,但这里仅出于简单起见而未添加。
$gender = $_POST['gender'];
if(!empty($gender) && $gender != "Male" || $gender != "Female"){
$error[] = "Gender not valid";
}
如果有人能解释一下如何检查选择框的值,以确保它们没有被篡改,并且包含男性、女性或无值,那就太感谢了。也许我做错了什么。