php - 在 PHP 中验证选择下拉数组

标签 php validation

我有以下内容可以在表单上生成状态下拉列表:

$states = array('State', 'Alabama', 'Alaska', 'Arizona', 'Arkansas');
echo "<select name='choose_state'>\n";
foreach ($states as $key => $state)
{echo "<option value='$key'>$state</option>\n";}
echo "</select>";

我将如何确保用户
1) 只选择数组中的一个选项
2)不选择默认值? ([0]=> string(5) "状态")

编辑:在 php 中验证,这是用于在发布到数据库之前收集用户信息的表单
我尝试使用 in_array 并在尝试排除默认值时遇到困难

最佳答案

我认为您遗漏了一些支票。您永远不应该依赖确切发布的内容,并且始终执行彻底检查:

$chosen_state = null;

if (array_key_exists('choose_state', $_POST))
{
  $choose_state = $_POST['choose_state'];
  if (array_key_exists($choose_state, $states) && $choose_state > 0)
  {
    // Value does actually exist in array and is not item 0.
    $chosen_state = $states[$chose_state]);
  }
}

关于php - 在 PHP 中验证选择下拉数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6234388/

相关文章:

c# - 使用 Regex 的 DataValidation 不起作用

ruby-on-rails - Ruby on Rails。自定义验证器方法中的自定义消息

python - 有条件地只需要 Django 模型表单中的一个字段

php - 如何使用下一页帖子在 wordpress 中列出我的帖子

javascript - 如果复选框选中文本框则获取类 ="form-input validate required",则 Jquery 验证

javascript - PHP JSON 转换为 javascript 变量

PHP 检查数据库中启动日期前一周是否插入了一定数量的行

Asp.Net 表单验证 onkeyup

javascript - 通过 onsubmit 表单发送数组

php - 如何将可变模式与 preg_match 一起使用?