我有一个简单的表单,有几个选择输入。其中之一是性别选择。
输入是这样生成的:
echo $this->Form->input('gender_id', array(
'options' => array(
1 => 'Male',
2 => 'Female'
)
));如何确保只有给定的selects才能被提交,从而不能提交3或更多内容?
我使用的是Security组件,它似乎可以防止字段名篡改,但不能防止值篡改。
对于更大的选择列表(如State select ),进行简单的比较是不现实的。此外,我还试图避免执行额外的查询来验证ids。
发布于 2013-01-05 06:41:49
要求值位于指定的列表中,以便对模型进行验证:
public $validate = array(
'gender_id' => array(
'allowed' => array(
'rule' => array('inList', array(1, 2)),
'message' => 'Please select male or female.'
)
)
);发布于 2012-06-12 09:12:48
将DB中的此字段设置为ENUM字段,允许值为1和2。
只需使用FireBug操作DOM或POST请求,就可以not防止别人提交第三个值。如果它不是DB值,并且不能通过Model form验证规则运行,则必须在控制器中手动执行。因为只有在那里,根据您的描述,这种类型的验证是必要的。
https://stackoverflow.com/questions/10989392
复制相似问题