位置: 编程技术 - 正文

PHP验证码类ValidateCode解析(php验证码扭曲效果怎么做)

编辑:rootadmin

推荐整理分享PHP验证码类ValidateCode解析(php验证码扭曲效果怎么做),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:php识别验证码的库高级,php验证码代码怎么写,php验证码代码怎么写,php制作验证码登录页面,php验证码识别,php 验证码,php验证码代码怎么写,php 验证码,内容如对您有帮助,希望把文章链接给更多的朋友!

PHP解析验证码类

1.开始

在网上看到使用PHP写的ValidateCode生成验证码类,感觉不错,特拿来分析学习一下。

2.类图

3.验证码类部分代码

3.1 定义变量

$charset 是随机因子,这里是去掉了几个不容易区分的字符,如字母"i,l,o,q",数字"0,1"。有必要可以加入一些中文或其他字符或算式等。

$codeLen表示验证码长度,常见4位。

3.2构造函数,设置验证码字体,生成一个真彩色图像img

3.3从随机因子中随机抽取4个字符,作为$code验证码.

3.4生成验证码背景色.

其中mt_rand(, ),目的是随机取比较浅的颜色。

3.5在图像上生成文字.

在图像上生成验证码文字,主要考虑文字在图像上的位置和每一个文字颜色。

控制第n个文字的x轴位置 = (图像宽度 / 验证码长度) * (n-1) + 随机的偏移数; 其中n = {d1....n}

PHP验证码类ValidateCode解析(php验证码扭曲效果怎么做)

控制第n个文字的y轴位置 = 图像高度 / 2 + 随机的偏移数;

mt_rand(0, ) 随机取文字颜色,0-目的是取比较深的颜色。

mt_rand(-, ) 随机的文字旋转。

3.6在图像上生成线条和雪花

画线条的时候,取比较深的颜色值,而画雪花的时候取比较淡的颜色值,目的是尽可能的不影响人眼识别验证码,又能干扰自动识别验证码机制。

3.7对外生成验证码图像,供外部调用。

3.8完整代码:

4.测试

测试代码:

生成验证码:

5.应用

上面onclick代码是点击验证码图片,能自动刷新验证码。

code.php:

有关应用的完整代码可以从 的CMS1.0 文件里下载。

6.小结

在独立测试过程,没发现什么问题;但应用到项目的时候,刚开始发现无法生成验证码图片,网上找了一下,有的说是在outPut()函数中,

在header('Content-Type: image/png'); 这行代码前面增加了一行ob_clean()代码,可以解决验证码这块问题。虽然此方法简单,但这可能会引起其他缓冲数据问题,因为db_clean()功能就是丢弃输出缓冲区中的内容。

标签: php验证码扭曲效果怎么做

本文链接地址:https://www.jiuchutong.com/biancheng/296225.html 转载请保留说明!

上一篇:PHP缩略图生成和图片水印制作(php缩进)

下一篇:Yii框架弹出窗口组件CJuiDialog用法分析(提示框架)

  • 什么情况下要交环保税
  • 普票和增值税发票的区别
  • 取得交易性金融资产投资收益为什么在借方
  • 进账单填错了用重新开转账支票吗
  • 用友t3固定资产计提折旧后没有凭证
  • 应付账款预收账款
  • 小规模纳税人第四季度怎么报税
  • 高新补贴收入计入什么科目
  • 投资收益涉及税种
  • 企业所得税是当期收入吗
  • 全年累计申报个税怎么计算
  • 一般纳税人企业所得税如何计算
  • 其他货币资金明细科目有哪些
  • 应收账款坏账准备是信用减值损失还是资产
  • 如何在Windows10中打开命令提示符?
  • 最新气象报告
  • 支付职工培训费的现金流量项目
  • 防疫物资费用会计处理
  • 苹果14
  • 鸿蒙系统蓝牙耳机声音小怎么办
  • kavsvc.exe - kavsvc是什么进程 有什么作用
  • 大家掌握的都很好 英语
  • vue.config.js 中 devServer.proxy 配置说明,以及配置正确不生效问题
  • php如何创建文件
  • 增值税纳税申报表在哪里打印
  • SpringBoot+Vue实现在线商城系统
  • 税务自查报告范文自查报告怎么写
  • mysql的存储
  • 建筑公司预收账款财税怎么处理
  • 个体工商户可以给自己交社保吗
  • 应收账款提坏账准备的方法
  • 将织梦dedecms转换到wordpress
  • php变量名称中可以包含哪些元素
  • 详解帝国cms图集大全
  • 支付宝支付凭证在哪里查
  • sql server 2008r2连接
  • mysql创建存储过程sql语句
  • 水库水面经营权如何取得
  • 外地职工的界定
  • 购置环保设备一次性扣除
  • 电子商业承兑汇票的承兑有以下几种方式
  • 土地出让金如何缴纳
  • 当月的进项税可以不认证吗?
  • 支付货代运费账务处理
  • 生产辅料清单
  • 在建工程哪些费用可以资本化
  • 小规模纳税人怎么开增值税专用发票
  • 资金占用利息收入怎么入账
  • 研发费用怎样进成本科目
  • sql查询当前年份
  • 如何用win7
  • rpm包安装的apache可以如何启动
  • win8系统怎么改win10
  • macbookair如何恢复系统
  • win8.1怎么用
  • windows 10为什么不能关掉自动更新
  • onekey.exe是什么
  • 开发环境配置是干嘛
  • [置顶] 《诸天星河》
  • ExtJS GridPanel 根据条件改变字体颜色
  • python做好玩的东西
  • 英语中our和my的区别
  • 微软早在1985年便首次使用了安卓上饱受争议的汉堡按钮
  • 批处理计算的特点
  • unity3d4个脚本
  • linux 定时任务
  • 批处理中for语句的哪个参数表示目录
  • python汉字字符
  • js每天的定时任务
  • JavaScipt中Function()函数的使用教程
  • android的数据储存方式
  • javascript数组有哪些方法
  • Android通知栏点击打开安装
  • json python 字段读取
  • js继承的方法
  • 社保欠费税务催缴
  • 浙江国家税务局电子税务局官网入口
  • 减免性质代码怎么会自动选择
  • 政务公开事项目录编制
  • 医保未参保怎么参保 支付宝
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设