gpt4 book ai didi

thinkPHP中验证码的简单实现方法

转载 作者:qq735679552 更新时间:2022-09-27 22:32:09 25 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章thinkPHP中验证码的简单实现方法由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

本文实例讲述了thinkPHP中验证码的简单实现方法。分享给大家供大家参考,具体如下:

运行效果图如下:

thinkPHP中验证码的简单实现方法

1.php端生成验证码函数 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
public function verify(){
     // 验证码
     import( "@.Util.Image" );
     Image::buildImageVerify(4,1, 'png' ,40,20, 'verify' );
}
/**
* 生成图像验证码
* @static
* @access public
* @param string $length 位数
* @param string $mode 类型
* @param string $type 图像格式
* @param string $width 宽度
* @param string $height 高度
* @return string
*/
static function buildImageVerify( $length =4, $mode =1, $type = 'png' , $width =48, $height =22, $verifyName = 'verify' ) {
     import( 'ORG.Util.String' );
     $randval = String::randString( $length , $mode );
     session( $verifyName , md5( $randval ));
     $width = ( $length * 10 + 10) > $width ? $length * 10 + 10 : $width ;
     if ( $type != 'gif' && function_exists( 'imagecreatetruecolor' )) {
       $im = imagecreatetruecolor( $width , $height );
     } else {
       $im = imagecreate( $width , $height );
     }
     $r = Array(225, 255, 255, 223);
     $g = Array(225, 236, 237, 255);
     $b = Array(225, 236, 166, 125);
     $key = mt_rand(0, 3);
     $backColor = imagecolorallocate( $im , $r [ $key ], $g [ $key ], $b [ $key ]);  //背景色(随机)
     $borderColor = imagecolorallocate( $im , 100, 100, 100); //边框色
     imagefilledrectangle( $im , 0, 0, $width - 1, $height - 1, $backColor );
     imagerectangle( $im , 0, 0, $width - 1, $height - 1, $borderColor );
     $stringColor = imagecolorallocate( $im , mt_rand(0, 200), mt_rand(0, 120), mt_rand(0, 120));
     // 干扰
     for ( $i = 0; $i < 10; $i ++) {
       imagearc( $im , mt_rand(-10, $width ), mt_rand(-10, $height ), mt_rand(30, 300), mt_rand(20, 200), 55, 44, $stringColor );
     }
     for ( $i = 0; $i < 25; $i ++) {
       imagesetpixel( $im , mt_rand(0, $width ), mt_rand(0, $height ), $stringColor );
     }
     for ( $i = 0; $i < $length ; $i ++) {
       imagestring( $im , 5, $i * 10 + 5, mt_rand(1, 8), $randval { $i }, $stringColor );
     }
     Image::output( $im , $type );
}

生成图片的同时,传入到session中.

2.页面端 。

?
1
< img id = "verifyImg" src = "{sh::U('Agent/Login/verify')}" onClick = "changeVerify()" title = "点击刷新验证码" /></ div >

直接src中调用.

点击触发改变.

?
1
2
3
4
5
function changeVerify(){
  verifyURL = "{sh::U('Agent/Login/verify')}" ;
  $( "#verifyImg" ).attr( "src" ,verifyURL);
  return false;
}

3.后台验证,对比post字段与session中的验证码是否一致.

?
1
2
3
if ( $_SESSION [ 'verify' ] != md5( $_POST [ 'verify' ])) {
   $this ->error( '验证码错误!' );
}

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助.

最后此篇关于thinkPHP中验证码的简单实现方法的文章就讲到这里了,如果你想了解更多关于thinkPHP中验证码的简单实现方法的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com