2012-07-19 43 views
1

我有这样的事情笨表单验证:验证规程规定

$this->form_validation->set_rules('name', 'Name', 'trim|required|strip_tags|xss_clean|callback__name_check'); 

现在,如果有人进入<p></p>或同等学历(空标签),其结果将是空的表单验证规则,但不知何故需要规则也会通过,导致在插入数据库时​​出现空白名称。

我可以在插入之前做一次额外的检查,但是我不知道CI有没有办法阻止这种情况发生?

感谢

回答

4

你试过切换requiredstrip_tags在这个规则?

$this->form_validation->set_rules('name', 'Name', 'trim|strip_tags|required|xss_clean|callback__name_check'); 
+0

非常确定我试过它无济于事,但现在改变了规则的顺序后,它就起作用了! :)谢谢 – Henson 2012-07-19 15:22:56

+0

你应该在xss_clean之后移动它。不幸的是我相信xss_clean会插入“[removed]”,也许你可以将它设置为一个空字符串或其他东西。 – 2012-07-19 18:44:11

0

尝试删除用strip_tags规则(不会出现笨用户指南),并尝试使用:

$this->form_validation->set_rules('name', 'Name', 'trim|required|prep_for_form|xss_clean|callback__name_check'); 

我认为这是有用的,你

用户指南说:

prep_for_form 

Converts special characters so that HTML data can be shown in a form field without breaking it. 

http://codeigniter.com/user_guide/libraries/form_validation.html 
+0

没有好,因为它传递了'

'当我将其转换为一决高下,蛞蝓将是空的,因为我使用url_title来一决高下。 – Henson 2012-07-19 15:34:03