php5 图片验证码的解决办法
2024-04-06 13:39:49内容摘要
这篇文章主要为大家详细介绍了php5 图片验证码的简单示例,具有一定的参考价值,可以用来参考一下。
对此感兴趣的朋友,看看idc笔记做的技术笔记!GD库的函数1,imagecreatetruecol
对此感兴趣的朋友,看看idc笔记做的技术笔记!GD库的函数1,imagecreatetruecol
文章正文
这篇文章主要为大家详细介绍了php5 图片验证码的简单示例,具有一定的参考价值,可以用来参考一下。
对此感兴趣的朋友,看看idc笔记做的技术笔记!
GD库的函数1,imagecreatetruecolor -----创建一个真彩色的图像imagecreatetruecolor(int x_size,int y_size) //x表示宽,y表示高2,imagecolorallocate 为一幅图像分配颜色(调色板)imagecolorallocate(resource image,int red,int green,int blue)//red,green,blue----三原色3,imagestring 绘图函数iamgestring(resource image,font,int x,int y,内容,颜色);4,输出函数php的header是定义头的动作,php5中支持3中类型:1,Content-type:xxxx/yyyy2,Location:xxxx:yyyy/zzzz3,Status:nnn xxxxxxxxxx/yyyy表示内容文件的类型如:image/gifimage/jpegimage/png例子:header("Content-type:image/jpeg")GD库中有对应的image类型imagejpeg(),imagegif(),imagepang()5,imageline画线函数iamgeline(resource image,int x1,int y1,int x2,int y2,int color);image ---图片x1 ---启始坐标y1x2 ---终点坐标y26,imagesetpixel画点函数imagesetpixel(resource image,int x,int y,int color)7,imagettftext带字体的写入函数imagettftext(resource image,float size,float angle,int x,int y,int color,string fontfile,string text)8,php验证码插入中文的方法iconv("gb2312","utf-8","字符串"); //首先要将文字转换成utf-8格式9,随机函数1,rand([int min,int max]) //rand(1,4) 生成1-4的数2, dechex(十进制数) //转换为十六进制做验证码的步骤:生成随机数 -- 创建图片 -- 随机数写成图片 --保存在session中输入验证码例子gdchek.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 | <code> <?php /* * 生成图片验证码 * and open the template in the editor. */ session_start(); for ( $i =0; $i <4; $i ++){ $rand .= dechex (rand(1,15)); //生成4位数包含十六进制的随机数 } $_SESSION [check_gd]= $rand ; $img =imagecreatetruecolor(100,30); //创建图片 $bg =imagecolorallocate( $img ,0,0,0); //第一次生成的是背景颜色 $fc =imagecolorallocate( $img ,255,255,255); //生成的字体颜色 //给图片画线 for ( $i =0; $i <3; $i ++){ $te =imagecolorallocate( $img ,rand(0,255),rand(0,255),rand(0,255)); imageline( $img ,rand(0,15),0,100,30, $te ); } //给图片画点 for ( $i =0; $i <200; $i ++){ $te =imagecolorallocate( $img ,rand(0,255),rand(0,255),rand(0,255)); imagesetpixel( $img ,rand()%100,rand()%30, $te ); } //首先要将文字转换成utf-8格式 //$str=iconv("gb2312","utf-8","呵呵呵"); //加入中文的验证 //smkai.ttf是一个字体文件,为了在别人的电脑中也能起到字体作用,把文件放到项目的根目录,可以下载,还有本机C:\WINDOWS\Fonts中有 imagettftext( $img ,11,10,20,20, $fc , "simkai.ttf" , "你好你好" ); //把字符串写在图片中 //imagestring($img,rand(1,6),rand(3,70),rand(3,16),$rand,$fc); //输出图片 header( "Content-type:image/jpeg" ); imagejpeg( $img ); ?> </code> |
代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | <code> <?php /* * * */ session_start(); if ( $_POST [sub]){ //判断验证码是否相同 if ( $_POST [gd_pic]== $_SESSION [check_gd]){ echo "验证成功!" ; } else { echo "验证码错误" ; } } ?> <form action= "login.php" method= "POST" > 用户名:<input type= "text" name= "user" /><br> 密码:<input type= "password" name= "pwd" /><br> 验证码:<imput type= "text" name= "gd_pic" /><img src= "gdchek.php" ><br> <imput type= "submit" name= "sub" value= "submit" /> </form> </code> |
注:关于php5 图片验证码的简单示例的内容就先介绍到这里,更多相关文章的可以留意
代码注释