前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >php开发_图片验证码

php开发_图片验证码

作者头像
Hongten
发布2018-09-13 16:27:38
2.7K0
发布2018-09-13 16:27:38
举报
文章被收录于专栏:HongtenHongten

项目结构:

提交表单:

校验正确:

校验错误:

     代码部分:

===========================================================

yanzhengma.php

 1 <?php
 2 //验证码的制作
 3 //1.生成4位的随机数
 4 for($i=0;$i<4;$i++){
 5     $rand.=dechex(rand(1, 15));
 6 }
 7 
 8 //2.创建图片
 9 //创建一张图片
10 $image=imagecreatetruecolor(100, 30);
11 //背景颜色
12 $bg=imagecolorallocate($image, 0, 0, 0);
13 $te=imagecolorallocate($image, 255,255,255);
14 
15 
16 //划线
17 for($i=0;$i<4;$i++){
18     $lineColor=imagecolorallocate($image, rand(20, 225), rand(20, 225), rand(20, 225));
19     imageline($image, rand(0, 100), 0, 100,30, $lineColor);
20 }
21 //划点
22 for($i=0;$i<200;$i++){
23     imagesetpixel($image, rand()%100, rand()%100, $lineColor);
24 }
25 //添加文字
26 //编码转换
27 $str=iconv("GBK", "UTF-8", "广州GZ");
28 imagettftext($image, 12,11, 20, 20, $lineColor, 'simhei.ttf', $str);
29 
30 //3.随机数写入图片$font=(1~6)
31 imagestring($image, rand(3, 6), rand(3, 70), rand(0, 16), $rand, $te);
32 
33 //4.随机数保存在session中
34 //启动session
35 session_start();
36 //把验证码放入session
37 $_SESSION[vilidationCode]=$rand;
38 
39 
40 header("Content-type: image/jpeg");
41 imagejpeg($image);
42 ?>

form.php

 1 <?php
 2 
 3 session_start();
 4 
 5 if($_POST[yanzhengma]){
 6 
 7     if($_POST[yanzhengma]==$_SESSION[vilidationCode]){
 8         echo "你通过了验证!";
 9     }else{
10         echo "你输入的验证码错误!";
11     }
12 }
13 ?>
14 <form action="" method="post"><img src="yanzhengma.php"><br />
15 <input type="text" name="yanzhengma" /><br />
16 <input type="submit" value="submit" /></form>

注意啦: 在项目结构中的COURBD.TTF和simhei.ttf这两个是字体库

大家可以在自己电脑:C:\WINDOWS\Fonts 目录中找到

(大多数在这里,部分同志可能安装在其他目录,T_T)。

测试了一下下面的代码:

1 //添加文字
2 //编码转换
3 $str=iconv("GBK", "UTF-8", "广州GZ");
4 imagettftext($image, 12,11, 20, 20, $lineColor, 'simhei.ttf', $str);

可以显示中文,但是如果是下面的代码:

1 //添加文字
2 //编码转换
3 $str=iconv("GBK", "UTF-8", "广州GZ");
4 imagettftext($image, 12,11, 20, 20, $lineColor, 'COURBD.TTF', $str);

这时候,中文就不能显示啦,所以大家在使用字体库的时候还是要注意的!!

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2012-04-21 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
验证码
腾讯云新一代行为验证码(Captcha),基于十道安全栅栏, 为网页、App、小程序开发者打造立体、全面的人机验证。最大程度保护注册登录、活动秒杀、点赞发帖、数据保护等各大场景下业务安全的同时,提供更精细化的用户体验。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档