php 根据数字生成图片,通过php生成纯数字、字母数字、图片、纯汉字的随机数验证码...

现在讲开始通过PHP生成各种验证码旅途,新手要开车了,请刷卡!

首先,我们开始先生成一个放验证码的背景图片

20180111000422661776.png

注:没有Imagejpg()这个函数,只有imagepng()函数

imagecreatetruecolor()函数含义

20180111000422663730.png

效果

20180111000422665683.png

考虑到我们一般验证码的背景图片为白色,那么我们现在就把背景图片改一下

20180111000422666659.png

效果

20180111000422668613.png

相关函数意思

20180111000422669589.png

20180111000422671542.png

注:在输出图片之前,我们必须要生成header(“Content-type:image/png”),即告诉服务器输出的是图片

一、生成纯数字验证码

1、产生数字的代码部分

20180111000422672519.png

效果

20180111000422673496.png

相关函数

20180111000422675449.png

将数字的颜色设置为随机的

20180111000422677402.png

效果

20180111000422678379.png

注:控制好字体大小和分布,避免字体重叠或字体显示不全(即控制好x和y轴的定义)

2、增加干扰元素(点元素)

代码部分

20180111000422679355.png

效果

20180111000422681308.png

相关函数

20180111000422682285.png

3、添加干扰元素(线元素)

20180111000422684238.png

效果

20180111000422686191.png

相关函数

20180111000422687168.png

注:干扰信息一定要控制好颜色,避免颜色吧数字给遮住了

二、生成字母数字的验证码

1、先把纯数字的相关设置给注释掉,避免干扰

代码部分

20180111000422689121.png

效果

20180111000422691074.png

提示:我们可以把显示的内容进行筛选,比如数字0和字母o是相似的,可以删掉(字母l和数字1,字母z和数字2),让用户有更好的体验

注:有时候我们进行筛选会出现筛选一个空内容出来,就会出现验证码只有三个或三个以下的字符出现,那么我们可以进行避免

20180111000422692051.png

三、通过seseion存储用户验证信息

1、 首先,我们都知道,在我们要用session进行存储信息时,我们都要在php文件中的最顶部进行session的开启

20180111000422694004.png

其次,我们要用session进行存储,那么:

20180111000422694981.png

2、验证码通过表单提交、进行校验

表单代码部分

20180111000422696934.png

效果

20180111000422697911.png

在用户提交验证码之后,后台进行校验的代码(在form.php的顶端进行编写)

20180111000422698887.png

测试

20180111000422700840.png

20180111000422701817.png

设置不区分大小写验证

20180111000422703770.png

四、动态校验设计

1、代码部分

20180111000422704747.png

效果

20180111000422705723.png

五、图片验证码

1、代码部分

20180111000422707677.png

2、前端部分

20180111000422708653.png

20180111000422710606.png

效果

20180111000422711583.png

20180111000422712560.png

20180111000422714513.png

六、汉字验证码

1、汉字验证码与字母数字验证码类似,稍作修改就好,代码部分

20180111000422715489.png

效果

20180111000422717443.png

前端部分

20180111000422718419.png

20180111000422719396.png

效果

20180111000422721349.png

20180111000422722326.png

2、需要汉字内容较多情况

20180111000422724279.png

前端不变

效果

20180111000422725255.png

20180111000422727209.png

相关函数

20180111000422728185.png

20180111000422730138.png

注:在选择字体样式的时候要选择支持中文的,比如简体、粗体之类

以上就是相关的验证码的实现内容了,你学会了吗!!!加油

END

原文:http://www.cnblogs.com/finalanddistance/p/7263554.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值