【问题标题】:Validating Select Box with PHP?用 PHP 验证选择框?
【发布时间】:2011-08-03 10:05:18
【问题描述】:

我用 PHP 编写过代码,但今天我第一次需要验证一个选择框,我很震惊地意识到我实际上并不确定如何去做。基本上这是我的 HTML:(忽略代码中的会话内容)

<label for="gender">Gender</label>
<select id="gender" name="gender" class="select option">
<option<?php if( $_SESSION['gender'] === "" ) { echo ' selected="selected"'; } ?>  value="">&nbsp;</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 字符串等,但为了简单起见,这里没有添加。

$gender = $_POST['gender'];

if(!empty($gender) && $gender != "Male" || $gender != "Female"){
    $error[] = "Gender not valid";
}

如果有人可以解释我如何检查选择框中的值,以确保它们没有被篡改并包含男性、女性或不包含将不胜感激的值。也许我做错了。

【问题讨论】:

    标签: php select drop-down-menu validation


    【解决方案1】:

    更简单的方法是将变量与允许值列表进行比较:

    if (!in_array($gender, array("", "Male", "Female"))) {
        $error[] =
    

    注意数组列表如何还包含空的"" 字符串。

    【讨论】:

    • 谢谢马里奥似乎是更合乎逻辑的最佳解决方案,所以谢谢:)
    【解决方案2】:

    问题不在于选择值,而在于您的条件。我想你想要这个:

    if(!empty($gender) && $gender != "Male" && $gender != "Female"){
        $error[] = "Gender not valid";
    }
    

    请注意,所有条件都是 AND'd 在一起的。

    【讨论】:

      【解决方案3】:

      试过if(!empty($gender) &amp;&amp; $gender != "Male" &amp;&amp; $gender != "Female"){??

      【讨论】:

        【解决方案4】:

        || 更改为&amp;&amp;。您需要确保性别不是男性也不是女性,不是其中之一。

        【讨论】:

          【解决方案5】:

          if(!($gender == "" || $gender == "Male" || $gender == "Female")){ 怎么样?

          【讨论】:

            【解决方案6】:

            男性和女性作为选择标签中的唯一选项:

            'selection'=> Input::get('selection')
            

            不会为男性选择任何选择,因此没有不选择的选项。

            保持简单;这样,它就不太容易出错:)

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2010-11-19
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2011-10-11
              • 2018-10-24
              相关资源
              最近更新 更多