php验证码处理
//基本步骤1,先创建一张指定宽度和高度的一张验证码图片 imagecreatetruecolor()2,给验证码图片添加背景颜色 和文字颜色 imagecolorallocate()3, 在指定图片上面,画一个矩形 imagefilledrectangle()4, 获取随机数 (定义一个函数) get_rand_str() 1,定义一个字符串 2,将上面的字符串 打乱 str_shuffle() 3,并且从这个打乱的字符串当中去截取一部分内容 substr() 4,把截取出来的字符串转化成小写字母 strtolower() 5, 将这个字符串 return5,将随机数写入到这个图片里面去 imagestring()6,防止别人去恶意刷我们的验证码 可以在这个图片上面加上一些点 imagesetpixel()7,开启session会话 将我们的验证码 存储到session当中与我们表单当中输入的验证码进行匹配8,输入图片的 头信息 和 图片资源 删除 header("Content-Type:image/png"); imagepng($img); imagedestroy($img);9,在登录界面 获取表单输入的验证码 和 我们session当中的验证码进行对比 如果正确就跳转登录界面 否则重新输入 html: <img src="img_code.php" /> img_code.php //处理随机字符函数 function get_rand_str($length = 4){ $chars = '123456789ABCDEFGHJKLMNPQRSTUVWXYZ'; $str = str_shuffle($chars); // 随机打乱一个字符串 $str = substr($str,0,$length); $str = strtolower($str); return $str; } $width = 45; //缩略图宽度 $height = 18; //缩略图高度 $img = imagecreatetruecolor($width,$height); // 新建一个真彩色图像 //imagecolorallocate() 为一幅图像分配颜色 /* *$img 为哪幅图分配颜色 *74 147 223 分别是所需要的颜色的红,绿,蓝成分。这些参数是 0 到 255 的整数或者十六进制 */ $backgroundcolor = imagecolorallocate($img,74,147,223); //背景颜色 $textcolor = imagecolorallocate($img,255,255,255); //文字颜色 //imagefilledrectangle — 画一矩形并填充 /* * $img 图片资源 * 0,0,$width,height 分别为矩形的坐标 * $backgroundcolor 表示填充的颜色 */ imagefilledrectangle($img,0,0,$width,height,$backgroundcolor); $get_code = get_rand_str(); //获取随机数 /* 水平地画一行字符串 imagestring ( resource $image , int $font , int $x , int $y , string $s , int $col ) imagestring() 用 col 颜色将字符串 s 画到 image 所代表的图像的 x,y 坐标处(这是字符串左上角坐标,整幅图像的左上角为 0,0) 如果 font 是 1,2,3,4 或 5,则使用内置字体。 */ imagestring($img,5,6,1,$get_code,$textcolors); //在图片当中去画一些点 防止有人而已破解验证码 //imagesetpixel — 画一个单一像素 /* *imagesetpixel ( resource $image , int $x , int $y , int $color ) *imagesetpixel() 在 image 图像中用 color 颜色在 x,y 坐标(图像左上角为 0,0)上画一个点。 */ for($i=0;$i<=20;$i++){ $x = mt_rand(0,$width); $y = mt_rand(0,$height); imagesetpixel($img,$x,$y,imagecolorallocate($img,mt_rand(0,255),mt_rand(0,255),mt_rand(0,255))); } session_start(); //开启session会话控制将验证码缓存 $_SESSION['imgcode'] = $get_code; //把生成的随机数放到session里面的一个变量当中 header("Content-Type:image/png"); imagepng($img); //在浏览器上面输出一张图片 imagedestroy($img); //销毁 图片php验证码处理的更多相关文章
- .net点选验证码实现思路分享
哈哈好久没冒泡了,最进看见点选验证码有点意思,所以想自己写一个. 先上效果图 如果你被这个效果吸引了就请继续看下去. 贴代码前先说点思路: 1.要有一个汉字库,并按字形分类.(我在数据库里是安部首分类 ...
- 【探索】无形验证码 —— PoW 算力验证
先来思考一个问题:如何写一个能消耗对方时间的程序? 消耗时间还不简单,休眠一下就可以了: Sleep(1000) 这确实消耗了时间,但并没有消耗 CPU.如果对方开了变速齿轮,这瞬间就能完成. 不过要 ...
- TODO:Laravel增加验证码
TODO:Laravel增加验证码1. 先聊聊验证码是什么,有什么作用?验证码(CAPTCHA)是"Completely Automated Public Turing test to te ...
- PHP-解析验证码类--学习笔记
1.开始 在 网上看到使用PHP写的ValidateCode生成验证码码类,感觉不错,特拿来分析学习一下. 2.类图 3.验证码类部分代码 3.1 定义变量 //随机因子 private $char ...
- 随手记_C#验证码
前言 最近在网上偶然看见一个验证码,觉得很有意思,于是搜了下,是使用第三方实现的,先看效果: 总体来说效果还是可以的,官方提供的SDK也比较详细,可配置性很高.在这里在简单啰嗦几句使用方式: 使用步骤 ...
- WPF做12306验证码点击效果
一.效果 和12306是一样的,运行一张图上点击多个位置,横线以上和左边框还有有边框位置不允许点击,点击按钮输出坐标集合,也就是12306登陆的时候,需要向后台传递的参数. 二.实现思路 1.获取验证 ...
- 零OCR基础6行代码实现C#验证码识别
这两天因为工作需要,要到某个网站采集信息,一是要模拟登陆,二是要破解验证码,本想用第三方付费打码,但是想想网上免费的代码也挺多的,于是乎准备从网上撸点代码下来,谁知道,撸了好多个都不行,本人以前也没接 ...
- ASP.NET中画图形验证码
context.Response.ContentType = "image/jpeg"; //生成随机的中文验证码 string yzm = "人口手大小多少上中下男女天 ...
- asp.net mvc 验证码
效果图 验证码类 namespace QJW.VerifyCode { //用法: //public FileContentResult CreateValidate() //{ // Validat ...
- ecshop验证码
<?php //仿制ecshop验证码(四位大写字母和数字.背景) //处理码值(四位大写字母和数字组成) //所有的可能的字符集合 $chars = 'ABCDEFGHIJKLMNOPQRST ...
随机推荐
- Data Base oracle简单使用及管理工具使用
oracle简单使用及管理工具使用 一.常用工具: 1.sqldeveloper 2.navicat for oracle 3.PLSQL Developer 4.toad
- timestamp 在curl中变成了Xtamp
目前的解决方案 将timestemp放在数组最前面. [注意:请求的参数中需要将timestamp这个参数放在数组的最前面,不然在GET方式请求中,会出现浏览器将它变成Xtamp,最终导致签名失败]
- Linux基础学习(二)
前言: 我们在上一节了解了一下linux的硬件组成,虽然也许对具体的东西还不甚了解,但是我们知道了linux下一切皆文件这一特性 我们装好了CentOS7的虚拟机(这个可以看别人教程来装起来,比较简单 ...
- c语言参考书籍
很惭愧没能把c++学的很好,毕竟离开始工作只有2年时间,对自己要求不要过高,慢慢来吧.话说知道自己的不足,以后要更加抓紧了!fighting~ 现在计划着把c语言给学习一下了,当然这次指的是深入地学习 ...
- plsql查询结果中文乱码
网上的教程很多,但是这里需要说明的是如果没有安装oracle客户端的情况下,该怎么修改注册表里面的oracle参数呢? 当然有些是不需要改注册表的,只需要配置环境变量就可以了,但是有的时候发现改了之后 ...
- luogu2948 滑雪课
题解里面全是dp的大神本蒟蒻瑟瑟发抖奉上一篇记忆化搜索... 其实嘛,记忆化搜索还是很安全透彻清真人品的,一般递推不好实现dp可以用记忆化搜索 然后本题先预处理一个mint[i]代表当前能力值为i,参 ...
- GIS有关GP服务的发布和调用
打印服务范例:http://blog.csdn.net/jingxinwjb/article/details/51906464 1.通过Modelbuilder新建工具.(注意:假如工具输出两个以上的 ...
- PAT天梯赛L1-020 帅到没朋友
题目链接:点击打开链接 当芸芸众生忙着在朋友圈中发照片的时候,总有一些人因为太帅而没有朋友.本题就要求你找出那些帅到没有朋友的人. 输入格式: 输入第一行给出一个正整数N(<=100),是已知朋 ...
- git ignore文件
创建.gitignore文件来设置git要忽略的文件模式: 官方文件列列表:https://github.com/github/gitignore 1. 所有空行或者以 # 开头的行都会被 Git 忽 ...
- Python-5-字符串方法
center >>> "The Middle by Jimmy Eat World".center(39) ' The Middle by Jimmy E ...