但是验证的时候一直错误
通过排除 发现验证码类 Verify.class.php中的check()函数里
$key有值
$secode = session($key); 这个$secode的值是NULL
请问到底是什么问题导致$secode是空呢 本地测试是好的
查出问题是表单自动验证的问题 如果提交验证是可以的 表单的自动验证用ajax提交验证不行
问题已经解决 将检验函数封装在公共文件夹的function.php中再调用就没这个问题了 不知道是什么原因
下面贴出相关代码:
/项目名称/Common/Common/function.php
function check_code($code,$id=''){
$verfiy = new \Think\Verify();
return $verfiy->check($code,$id);
}控制器里的方法:因为表单验证用的是ajax提交,属于跨域请求要加header信息.
public function checktest(){
$code = I('post.code');
$arr_ok['ok']="验证码正确!";
$arr_error['error']="验证码错误!";
if(check_code($code) === false){
header("Access-Control-Allow-Origin: *");
$this->ajaxReturn ($arr_error,'JSON');
}else{
header("Access-Control-Allow-Origin: *");
$this->ajaxReturn ($arr_ok,'JSON');
}
}表单验证用的是niceValidator基于Jqurey库:code':{
rule:'required;length[4];remote[http://网址/控制器/checktest];',
msg:{
required: "验证码不能为空!",
length: "请输入4位验证码."
}
} 最佳答案