为了网站的安全性,使用验证码技术是比较常见的,今天按照thinkphp3.2完全开发手册的例子试了一下(地址),总是报错,没法显示验证码,原因原来是在PHP.INI文件中没有打开GD库。
只要将配置文件PHP.INI中的extension=php_gd2.dll注释去掉就可以了(php_gd2.dll GD 库图像函数库 GD2)。
生成验证码
public function code(){ $Verify = new Verify(); $Verify->fontSize = 20; $Verify->length = 4; $Verify->useNoise = false; $Verify->entry();}
登录校验
function do_login(){ //获取用户名和密码等。和数据库中比对,有该用户允许登录否则输出错误页面 $username=$_POST['username']; $password=$_POST['password']; $code=$_POST['code']; $verify = new \Think\Verify(); $r=$verify->check($code, ''); if(!$r){ $this->error('验证码错误!'); } $m=M('User'); $where['username']=$username; $where['password']=$password; $i=$m->where($where)->count(); if($i>0){ $this->redirect('User/index'); }else{ $this->error('该用户不存在'); } }