首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >cakePHP -防止表单选择列表被篡改

cakePHP -防止表单选择列表被篡改
EN

Stack Overflow用户
提问于 2012-06-12 09:08:31
回答 2查看 754关注 0票数 2

我有一个简单的表单,有几个选择输入。其中之一是性别选择。

输入是这样生成的:

代码语言:javascript
复制
echo $this->Form->input('gender_id', array(
    'options' => array(
        1 => 'Male',
        2 => 'Female'
    )
));

如何确保只有给定的selects才能被提交,从而不能提交3或更多内容?

我使用的是Security组件,它似乎可以防止字段名篡改,但不能防止值篡改。

对于更大的选择列表(如State select ),进行简单的比较是不现实的。此外,我还试图避免执行额外的查询来验证ids。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-01-05 06:41:49

要求值位于指定的列表中,以便对模型进行验证:

代码语言:javascript
复制
public $validate = array(
    'gender_id' => array(
      'allowed' => array(
      'rule'    => array('inList', array(1, 2)),
      'message' => 'Please select male or female.'
     )
   )
 );
票数 1
EN

Stack Overflow用户

发布于 2012-06-12 09:12:48

将DB中的此字段设置为ENUM字段,允许值为1和2。

只需使用FireBug操作DOM或POST请求,就可以not防止别人提交第三个值。如果它不是DB值,并且不能通过Model form验证规则运行,则必须在控制器中手动执行。因为只有在那里,根据您的描述,这种类型的验证是必要的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10989392

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档