帮看下这个thinkphp的自动验证怎么这么邪乎

这是在客户Post后服务器端应答函数的部分代码
$_validate = array(array('name','checkHtmlStr',"名称不允许含有特殊字符'<、>、='",0,'function',3),);
if(!$m->validate($_validate)->create()){echo "------------111111111111";exit($m->getError());return;}
下面是验证的执行函数:
public function checkHtmlStr($date)
{return false;}
我用dump($_POST);显示post的内容有 'name'这个字段,数据库内也有name这个字段;
我的这段代码测试的是不管什么情况都返回错误,用来测试验证函数是否执行,可是验证函数checkHtmlStr虽然返回的false,这句if(!$m->validate($_validate)->create())应该为真,执行if块内的数据,结果却没有执行 .
忘了说了 $m是如此初始化的 $m=D('Customerofseller');
并且$m添加数据也是成功的.

给你看我写的一个例子:
//表单验证
protected $_validate=array(
//array('验证字段','验证规则','错误提示',验证条件,附加规则,验证时间)
array('uname','require','用户名必须验证!',1,'regex',3),
//array('username','','用户名已经存在',1,'unique',1),
array('pwd','require','密码必须填写!'),

array('pwd','checkPwd','密码长度不少于6位',1,'callback'),
);

function checkPwd(){
$password=$_POST['pwd'];
if(strlen($password)>=6){
return true;
}else {
return false;
}
}
//表单映射
protected $_map=array(
'uname'=>'username',
'pwd'=>'password',
);
//自动完成功能
protected $_auto=array(
//array(填充字段,填充内容,填充条件,附加规则) 填充条件:1,插入 2,更新 3,所有的
array('reg_date','getDate',1,'callback'),
array('password','md5',3,'function'),
);
function getDate(){
return date('Y-m-d H:i:s');
}
温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答