PHP.19-验证码生成
生成验证码
思路:先定义验证码函数getCode()
//绘制验证码
$num = 4; //字符长度
getCode($num, 2);
1、创建画布,分配颜色 imagecreatetruecolor()
$height
$width = $num*20; //假设每个字的大小为18
$im = imagecreatetruecolor($width, $height); //创建一个真彩色画布
$bg = imagecolorallocate($im, rand(200,250), rand(250,255), rand(150, 255)); //定义背景颜色图像
$color[] = imagecolorallocate($im, 240,240,240); //定义字体颜色【可以数组形式存储,定义某些深色字体】
2、开始绘画(一切都在画布$im上进行)
imagefill($im, 0,0, $bg); //区域填充(把背景填充到画布)
imagerectangle($im, 0,0, $width-1, $height-1, $color[rand(0,3)]); //定义个边框
//绘制验证码:逐字输出
for()
imagettftext($im, rand(16,18), rand(-40,40), 8+(18*$i),18, $color[rand(0,3)], "msyh.ttc", $str[$i]);
//随机添加干扰点(点数自定)
for(){
$c = imagecolorallocate($im, rand(0,255), rand(0,255), rand(0,255)); //干扰点颜色
imagesetpixel($im, rand(0,$width), rand(0,$height), $c);
//随机添加干扰线(线数自定)
for(){
$c = imagecolorallocate($im, rand(0,255), rand(0,255), rand(0,255)); //干扰线颜色
imageline($im, rand(0,$width), rand(0,$height), rand(0,$width), rand(0,$height), $c);
3、输出图像
header("Content-Type:image/png"); //设置响应头(此前不能有输出)
imagepng($im);
4、销毁图片
imagedestroy($im);
//自定义函数,获取验证码
function getCode($m=4, $type=1)
{
$str = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
$t = array(9, 35, strlen($str)-1); //类型划分
$c = "";
for($i=0; $i<$m; $i++)
$c .= $str[rand(0, $t[$type])];
//调用验证码,onclick可实现点击图片刷新
<img src="code.php" /onclick="this.src='code.php?id='+Math.random()'">
PHP.19-验证码生成的更多相关文章
- JAVA 验证码生成(转)
最近做了一下验证码的功能,网上找了一篇还不错,引用下:http://blog.csdn.net/ruixue0117/article/details/22829557 这篇文章非常好,但是web和js ...
- [转]php 图片验证码生成 前后台验证
本文转自:https://www.cnblogs.com/xiaoyezi/p/3541195.html 自己从前一段时间做了个php小项目,关于生成图片验证码生成和后台的验证,把自己用到的东西总结一 ...
- php 图片验证码生成 前后台验证
自己从前一段时间做了个php小项目,关于生成图片验证码生成和后台的验证,把自己用到的东西总结一下,希望大家在用到相关问题的时候可以有一定的参考性. 首先,php验证码生成. 代码如下: 1.生成图像代 ...
- Atitit 图片 验证码生成attilax总结
Atitit 图片 验证码生成attilax总结 1.1. 图片验证码总结1 1.2. 镂空文字 打散 干扰线 文字扭曲 粘连2 1.1. 图片验证码总结 因此,CAPTCHA在图片验证码这一应用点 ...
- ASP.NET验证码生成与识别
一般验证码页面只输出一个图片而不进行其他业务处理,所以验证码一般放在一般处理程序(httpHandler)页面中,而如果将验证码生成代码放到一般处理程序中,要将生成验证码保存在Session中,这里我 ...
- ajax原理,验证码生成原理
什么是ajax AJAX:”Asynchronous JavaScript and XML” 中文意思:异步JavaScript和XML 指一种创建交互式网页应用的网页开发技术. 不是指一种单一的 ...
- .net验证码生成及使用
验证码的作用: 几年前,大部分网站.论坛之类的是没有验证码的,因为对于一般用户来说验证码只是增加了用户的操作,降低了用户的体验.但是后来各种灌水机器人.投票机器人.恶意注册机器人层出不穷,大大增加了网 ...
- 验证码生成-->漂亮啊
验证码不用输出太多的HTML代码,直接创建一个一般处理程序,直接上代码 public class VCode : IHttpHandler { HttpContext context = null; ...
- Web---图片验证码生成教程详解-从简单到复杂-从本地到前后台
首先,我们先来看本地如何生成图片验证码的,再来写输出到网页的验证码如何实现. 先来看最简单的-实现的功能是,将一个字符串变成图片写入到文件中 实现代码: package cn.hncu.img; im ...
- 利用谷歌 kaptcha 进行验证码生成
package main.com.smart.controller; import com.google.code.kaptcha.Producer; import main.com.smart.ut ...
随机推荐
- Linux 下, 安装Android Studio
Download the Android Package of Linux from Android Studio, android-studio-bundle-130.737825-linux.tg ...
- wechat开发笔记之1.线上环境搭建与测试
Wechat开发笔记 线上环境搭建: 申请一个wechat公众平台. 手机个人微信可以用webwechat来测试. Website:https://web.weixin.qq.com/ 手机客户端扫一 ...
- SQL Server(第一章) 创建表 删除表 创建主键约束、唯一约束、外键约束、CHECK约束、默认约束
1.Employees员工表 /** 创建Employees员工表 **/ USE TSQL2012 IF OBJECT_ID('dbo.Employees','U') IS NOT NULL DRO ...
- 同步软件UltraCompare 64位 软件及注册机
软件及注册机下载: https://share.weiyun.com/f09e6243887e374ead1b3a3ab8f611a9 软件官方下载地址: https://www.ultraedit ...
- MySQL入门很简单: 14MySQL日志
二进制日志: 以二进制文件的形式记录了数据库中的操作,但不记录查询语句 错误日志: 记录MySQL服务器的启动,关闭和运行错误等信息 通用查询日志: 记录用户登录和记录查询的信息 慢查询日志: 记录执 ...
- SAP S4CRM和C4C的技术比较
如果您对SAP S/4HANA for Customer Management(以下简称S4CRM)和SAP Cloud for Customer(以下简称C4C)不甚熟悉,那我建议您可以先浏览我之前 ...
- 【转载】#336 - Declaring and Using a readonly Field
You can make a field in a class read-only by using the readonly modifier when the field is declared. ...
- IOS 计算文字尺寸(UILabel)
方式1 :普通用法 #define MJNameFont [UIFont systemFontOfSize:14] /** * 计算文字尺寸 * * @param text 需要计算尺寸的文字 * ...
- mongodb在C#的连接以及curd写法
连接数据库:参考地址:https://blog.oz-code.com/how-to-mongodb-in-c-part-2/ // Empty ctor will get you a // clie ...
- D. Bicycle Race_几何
D. Bicycle Race time limit per test 1 second memory limit per test 256 megabytes input standard inpu ...