用户
 找回密码
 入住 CI 中国社区
搜索
查看: 4366|回复: 5
收起左侧

[讨论/交流] CI 表单验证的一个bug

[复制链接]
发表于 2010-7-9 17:32:42 | 显示全部楼层 |阅读模式
CI表单验证(form_validation)有一个bug,如果有人使用这个library就要注意一下了,因为程序比较复杂,找到这个bug费了邪劲
表单验证的每个规则只能设置一个回调函数,如果设置多个除了第一个其他的不会执行,比如
$this->form_validation->set_rules('attachment','附件','callback_attachment_type|callback_attachment_size');
这样的话attachment_size()就不会执行.

解决办法,分开写即可.
$this->form_validation->set_rules('attachment','附件','callback_attachment_type');
$this->form_validation->set_rules('attachment','附件','callback_attachment_size');
发表于 2010-7-10 11:10:49 | 显示全部楼层
楼主为何不把callback_attachment_type和callback_attachment_size放在一个验证方法中呢?
 楼主| 发表于 2010-7-10 11:36:51 | 显示全部楼层
本帖最后由 ares333 于 2010-7-10 11:38 编辑

回复 2# haohailuo


$this->form_validation->set_message('attachment_type','错误的附件类型');
$this->form_validation->set_message('attachment_size','附件大小不能超过3M');

分开写是为了给出明确的错误信息(用户自定义回调函数只能返回TRUE或FALSE,不足以说明是附件类型错误还是大小超出限制)
发表于 2010-8-9 11:23:10 | 显示全部楼层
$this->form_validation->set_rules('name','尊姓大名','trim|required|min_length[5]|max_length[12]|xss_clean');

form_error的提示夹杂中英文。。怎么修改成全部中文呢?
发表于 2010-8-9 12:15:32 | 显示全部楼层
回复 4# 幽蓝冰魄


    装中文语言包,请论坛搜索。
发表于 2011-11-27 20:29:03 | 显示全部楼层
感谢提醒

本版积分规则