Think_PHP验证码

来源:互联网 发布:linux系统开发工程师 编辑:程序博客网 时间:2024/06/06 06:36

1,验证码

ThinkPHP中已经封装好了验证码类,放到 ThinkPHP/Extends/Library/ORG/Util/ 保存的是tp框架给我们封装好的一些类

 

如何使用这个验证码类:

(1)加载类库

之前说加载一个文件 require  require_once()

TP使用import() 这个方法有一个特点:

直接找到当前的类库目录

ThinkPHP中,有一个基类类库(ThinkPHP目录下面的Library目录)

同时还有一个当前项目的类库:项目的Lib目录

注意:在import方法中,以 .号代替 /

通过观察这个类库,我们发现这个类的方法大部分都是静态方法,根据之前复习的类与对象,只能通过类来调用静态方法

 

(2)实例化对象

(3)调用对象的方法

主要说一下验证码类的参数:

 

参数1,验证码的长度 字符个数

参数2,验证码的模式,以阿拉伯数字标记的,1代表生成的是数字类型的验证码,2,大写字母;3,小写字母;4,大小写混合;5,数字,大写,小写混合的验证码

 

(2)如何生成中文验证码

需要调用封装好的GBVerify()这个方法,但是需要保证类库中有中文字体

字体类型保存在 C/Windows/font\

(3)如何验证验证码是否正确

     1,验证码为什么要保存到session中?

 跨页面访问肯定要设计到数据的传输,从一个页面条到另外一个页面

  $_GET   $_POST

还可以通过session保存,session是保存到服务器端的

TP框架中,验证码也是保存到session中的,如何访问这个验证码呢?

$verifyName 就是保存到session中的验证码名称

$_SESSION[‘verify’]

2,而且该验证码还是通过MD5加密的

因为session中的验证码已经加密,如果提交过来的验证码不md5加密的话,会提示验证码错误

 

 

代码:

public function verify(){
  import('ORG.Util.Image');//加载类库
  ob_end_clean();//不出图片,添上就出了
 Image::buildImageVerify();
   //Image::GBverify();//生成中文验证码,在Image.class.php中文验证码那改成想要的字体,把字体复制到与它同级目录下
 
}
//验证码验证案例,点击刷洗沿着码
public function reg(){
 $this->display();
 }
public function validate(){                          
 if($_SESSION['verify'] !=md5($_POST['verify'])){//因为session中的验证码已经加密,如果提交过来的验证码不md5加密的话,会提示验证码错误,$_SESSION['verify']中的verify并不是因为验证码框的name是verify,session保存的是verify函数,
  $this->error('验证码不正确','__URL__/reg');
  }else{
  $this->success('正确','__URL__/reg');
   }
 }
 

<form action='__APP__/Admin/Common/validate' method='post'>
用户名:<input type='text' name='username'><br>
密码:<input type='password'name='password'><br>
验证码:<input type='text' name='verify'><img src='__URL__/verify' style="cursor:pointer" onclick='shua(this)'><!--引入验证码__APP__/Common--><br>
<input type='submit'>
</form>
<script>

function shua(obj){
obj.src='__URL__/verify/random/'+Math.random();//点击刷新,重新加载验证码文件

}

</script>

 

 

 

原创粉丝点击