验证码通常是用来安全保证我们网站注册或登录不被注入的,但为了更安全我们通常会生成一些混合验证码了,下面一起来看看例子.

在我们开发登录模块或者是论坛的灌水模块的时候,为了防止恶意提交,需要用到验证码,验证码就是用来区分人和机器的一种手段,当然这种手段不是万无一失,但总归会起到一些作用.

验证码的实现需要GD库的支持,没有开启GD库的童鞋需开启GD库,其实验证码的制作和使用非常的简单,仅仅只是需要4个步骤就可以搞定:创建验证码底图,显示验证码内容,增加干扰元素,输出验证码,下面我们来进行步骤拆分:

第一步:创建验证码底图

$image = imagecreatetruecolor(100, 30); // 创建一个宽为 100 高为 30 的底图 该底图的背景色 为黑色 是系统定义的

$bgcolor = imagecolorallocate($image, 255, 255, 255); // 为上面创建的底图分配 白色的背景颜色

imagefill($image, 0, 0, $bgcolor); // 填充白色背景色

第二步:显示验证码内容

// 输出验证码内容

for ($i=0; $i < 4; $i++) {

$fontsize = 6;

$fontcolor = imagecolorallocate($image, rand(0,120), rand(0,120), rand(0,120));

$data = 'qwertyuipkjhgfdsazxcvbnm23456789';

$content = substr($data, rand(0, strlen($data)), 1);

$x = ($i*100/4) + rand(5,9);

$y = rand(5,10);

imagestring($image, $fontsize, $x, $y, $content, $fontcolor); //在图像上水平输出一行字符串

}

第三步:增加干扰元素

// 增加干扰点元素

for ($i=0; $i < 300; $i++) {

$pointcolor = imagecolorallocate($image, rand(50,200), rand(50,200), rand(50,200));

imagesetpixel($image, rand(0,99), rand(0,29), $pointcolor);

} //开源软件:phpfensi.com

// 增加干扰线元素 线 和 点 的颜色一定要控制好 要比验证码数字的颜色浅 避免出现验证码数字看不见的现象

for ($i=0; $i < 4; $i++) {

$linecolor = imagecolorallocate($image, rand(100,240), rand(100,240), rand(100,240));

imageline($image, rand(0,99), rand(0,29), rand(0,99), rand(0,29), $linecolor);

}

第四步:输出验证码

// 输出创建的图像 在输出图像之前 必须输出头信息 用来规定输出的图像类型

header("Content-Type: image/png");

imagepng($image);

// 销毁图像

imagedestroy($image);

至此,一个简单的验证码就实现了,关于实现验证码的注意事项已经写在了注释里,使用验证码的时候,我们一般都需要用session来保存以便验证,在这里就不作详细介绍。

以上就是php验证码生成代码,在重要的代码里已经进行了注释,大家可以仔细研究注释内容,也很重要,希望大家能够有所收获吧

php 验证码的代码,php验证码生成代码相关推荐

  1. 咖啡html代码,HTML5咖啡生成代码动画

    JavaScript 语言: JaveScriptBabelCoffeeScript 确定 ! function($) { "use strict"; var Typed = fu ...

  2. VS2010 win32项目windows窗体程序 向导生成代码解析

    目录: 1.Win32项目的windows窗体程序的向导生成了如下代码 2.手工生成代码如下 3.当消息队列中没有消息需要处理,我们可以利用这段时间处理我们自己的任务 1.Win32项目的window ...

  3. MATLAB的Curve Fitting Tool 生成代码并被调用

    以MATLAB2014b为例: 打开Curve Fitting:应用程序>>Curve Fitting: 拟合:选择数据源>>X/Y/Z data(没有的话运行下你想曲面拟合的 ...

  4. php 实现图形验证码,PHP实现图形验证码案例(1)

    图形验证码是网站中必备的基础设施,本文采用了Edword Eliot写的PhpCaptcha验证码生成库.开源的"最土团购"就是采用这个验证码生成库,该库主要包含这么几个文件: C ...

  5. php mysql 验证码代码_PHP_PHP 验证码的实现代码,checkcode.php 生成验证码图片, - phpStudy...

    PHP 验证码的实现代码 checkcode.php 生成验证码图片,还有变量 $_SESSION[check_pic]. 复制代码 代码如下: session_start(); for($i=0; ...

  6. java 后端 验证码逻辑_Java后端产生验证码后台验证功能的实现代码

    直接跳severlet在java后台生成验证码: @RequestMapping(value="yzm.action") public void Yzm(HttpSession s ...

  7. Web项目中手机注册短信验证码实现的全流程及代码

    最近在做只能净化器的后台用户管理系统,需要使用手机号进行注册,找了许久才大致了解了手机验证码实现流程,今天在此和大家分享一下. 我们使用的是榛子云短信平台, 官网地址:http://smsow.zhe ...

  8. Java代码生成图片验证码

    Java生成图片验证码 1.编写代码 copy 下面的代码 并运行main函数 import javax.imageio.ImageIO; import java.awt.*; import java ...

  9. c语言短信验证码,Web项目中手机注册短信验证码实现的全流程及代码

    使用的是榛子云短信平台, 官网地址:http://smsow.zhenzikj.com 后端使用了springMvc,前端用的是jsp + jquery 下载demo: https://downloa ...

最新文章

  1. pip is configured with locations that require TLS/SSL 解决
  2. 与http协作的web服务器、http首部(第五章、第六章)
  3. login窗口for mysql_CTF| SQL注入之login界面
  4. 如何批量查问PR值、百度权重、百度快照及收录量,用BlueCatTools批量网站查询工具
  5. 安卓第二阶段实训项目:基于媒体库音乐播放器V1.0
  6. drbd相关知识点解析
  7. C#方法的六种参数,值参数、引用参数、输出参数、参数数组、命名参数、可选参数...
  8. 资源 | 有没有必要把机器学习算法自己实现一遍?
  9. 关于线程join方法的理解
  10. TCP和UDP的区别与联系
  11. 微信android支持版本,兼容安卓4.2.2版本安装哪个版本微信!微信支持版本是什么版本吗...
  12. H3C S5820V2 MSR36-20
  13. gprs信息上传服务器,车载GPS GPRS数据上传 源码带注释
  14. virt-manager 管理KVM虚拟机
  15. Python之word2vec用法说明
  16. 大数据开发之安装mysql
  17. Eclipse Other Projects
  18. C++工程编译链接错误汇总VisualStudio
  19. 搜索引擎排名都选乐云seo_搜索优化技术选乐云seo
  20. java对配_[Java教程]对局匹配

热门文章

  1. 如何理解直线的投影方向?
  2. 身边的那些信审人员都去哪了?
  3. VUE3 实现点击图片高亮 实现布局切换功能
  4. 《XXX重点项目质量保证措施》文档模板
  5. 创建线程的四种方式(Thread、Runnable、线程池、Callable)
  6. 2023最新SSM计算机毕业设计选题大全(附源码+LW)之java酒店客房管理系统z97wo
  7. leetcode 38.外观数列
  8. 使用QMI8658六轴原始数据融合输出欧拉角笔记
  9. 扩展巴科斯范式 EBNF
  10. INITIAL, FILE NOT FOUND ERROR