新版本中I方法的一个错误

浏览:455 发布日期:2014/04/12 分类:求助交流 关键字: 新版本 I方法 错误
http://document.thinkphp.cn/manual_3_2.html#input_var
上面这个页面变量过滤处标识能够使用如下方式过滤:
I('post.email','',FILTER_VALIDATE_EMAIL);
事实上是不可以的:
因为I方法中是使用explode方法来处理$filters的 导致$filters    =   isset($filter)?$filter:C('DEFAULT_FILTER');
        var_dump(gettype($filters)); //int 274
        if($filters) {
            $filters    =   explode(',',$filters);
            var_dump(gettype($filters[0]));  // string '274'
FILTER_VALIDATE_EMAIL的类型由int变成了String
然后再使用filter_id获取这个假字符串的返回结果必然为false$data   =   filter_var($data,is_int($filter)?$filter:filter_id($filter));所以虽然是合法的email也会返回false了
最佳答案
评论( 相关
后面还有条评论,点击查看>>