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 ...
随机推荐
- WorkFlow 的 Xaml 中找不到引用类型
原来还是需要两步走. 1. 在refernece里面应用project或dll. 2. 在xaml的命名空间里面手动添加.
- [RDLC]心得整理(一)
2014年在做项目的时候, 过用过RDLC, 之后便在没有使用过了. 最近又有项目使用rdlc, 感觉有些陌生,然后重新阅读了以前的笔记,想做一下整理. 常见问题: 1. 为什么rdlc报表出来的pd ...
- ring0 SSDTHook
SSDT 的全称是 System Services Descriptor Table,系统服务描述符表.这个表就是一个把 Ring3 的 Win32 API 和 Ring0 的内核 API 联系起来. ...
- SQL-常用数据类型
整数除了 INT 外,还有 TINYINT.SMALLINT.MEDIUMINT.BIGINT. CHAR 和 VARCHAR 的区别: CHAR 的长度是固定的,而 VARCHAR 的长度是可以变化 ...
- BSP和JSP里的UI元素ID生成逻辑
CRM WebClient UI WebClient UI渲染出来的DOM元素的这些C#_W#格式的id是在哪行ABAP代码被生成出来的? 参考我的博客WebClient UI element ID ...
- python IDE--pycharm安装及使用
官网 :http://www.jetbrains.com/pycharm/ 下载community版本,免费.下载之后傻瓜式安装即可. 1 启动pycharm,选择新建项目: 设置项目路径和项目名: ...
- Nginx+Tomcat+memcached高可用会话保持
Nginx+Tomcat+memcached高可用会话保持 文章来源dyc2005 一.概述 之前文章已经描述了企业高可用负载相关的架构及实现,其中常用的nginx或haproxy,LVS结合ke ...
- stixel-world代码解读
下边缘的求法应该是使用的第二篇论文的方法 上边缘的求法应该是使用的第一篇论文的方法 这是求上边缘的代码: std::vector<float> integralMembership(vma ...
- 相机标定/校正(Camera Calibration)
以前DIP課程有做過Camera calibration,這次因為用Gopro做Visual SLAM,所以又要撿一下校正的過程.主要還是張正友的方法. OpenCV: 用OpenCV自帶的Sampl ...
- 【书籍连载】《STM32 HAL 库开发实战指南—基于F7》-第一章
从今天起,每天开始连载一章<STM32 HAL 库开发实战指南—基于F7>.欢迎各位阅读.点评.学习. 第1章 如何使用本书 1.1 本书的参考资料 本书参考资料为:<STM32 ...