【新手必看】TP自动验证的一些注意点

浏览:3220 发布日期:2013/05/23 分类:技术分享 关键字: 新手 必看 自动验证 注意点 经验分享
大家有没发现,其实官网的评论是可以发空格或者换行、制表之类的空字符的。这当然不符合评论的初衷。
原因就在于在处理评论内容时使用的验证规则为protected $_validate = array(
        array('content','require','评论内容必须!'),
    );
这样似乎没问题,但是如果仔细检查框架源码,就会发现require的正则规则是'require'=> '/.+/',也就是匹配除换行之外的任意字符,当然空格之类的也可以了。
那么就来修改。
本来我是想着用自动完成来去掉空字符,在进行验证。但是再看下源码,执行流程是先进行验证在自动完成。
而且create方法是直接接收的$_POST数组,由于前端是不可信的,那只能在后端进行操作。
剩下的有两种可行的方法:
1,修改框架Model.class.php的源码,将require的正则改为'require'=> '/\S+/'匹配一个或多个非空字符
2,或者将自动验证改成自定义方法,自己来验证
当然推荐使用第二种方法,因为有时我们确实需要接收空字符等特殊要求

总结:大家使用自动验证的非空检查时,先想想是否需要严格验证空字符,然后选择合适的验证方法。另外,如果表单传过来checkbox值的话,可不能用require来验证,因为传过来的可是一个数组。
最佳答案
评论( 相关
后面还有条评论,点击查看>>