看了大家的说法,有的说将验证的方法放在Common/function.php中, 然后在控制器中调用这个方法就可以解决了.
但是实际上并不可以.
真正的问题是手册上的例子是错的.
手册上的代码是.
// 检测输入的验证码是否正确,$code为用户输入的验证码字符串
function check_verify($code, $id = ''){
$verify = new \Think\Verify();
return $verify->check($code, $id);
}上面有id ,问题就在这里,如果你只生成一个验证码,就不需要加上id我的代码如下:
生成验证码:
/**
* 生成验证码
* @return [type] [description]
*/
public function verify()
{
$config = array(
'fontSize' => 30, // 验证码字体大小
'length' => 4, // 验证码位数
'useNoise' => false, // 关闭验证码杂点
);
$Verify = new \Think\Verify($config);
$Verify->entry();
}验证码检验方法:这个方法放在function.php中也可以.我这里是放在控制器中了.
注意,我这里是没有$id 这个参数的
protected function check_code($code){
$verify = new \Think\Verify();
return $verify->check($code);
}最后,调用检测. public function login()
{
//接收数据
$cid = I('CorporateId');
$userName = I('LoginName');
$password = I('Password');
$code = I('verify');
//检验验证码
if(!$this->check_code($code))
{
$this->returnMsg(1,'captcha is wrong');
} 最佳答案