一个简单的PHP验证码实现代码


Posted in PHP onMay 10, 2014

实现代码:

<?php
 //将验证码保存到session里,供全局使用
 session_start();
 $nums = "";
 for($i=0;$i<4;$i++){
  //产生随机数并转换成十六进制
  $nums.=dechex(mt_rand(0,15));
 }
 //将验证码写入session
 $_SESSION['code']=$nums;

 //设置验证码长和宽
 $_width = 60;
 $_height = 20;
 //创建一张图片
 $_img = imagecreatetruecolor($_width,$_height);
 //创建一个白色
 $_white = imagecolorallocate($_img,220,250,250);
 //填充背景
 imagefill($_img,0,0,$_white);

 //随机画6条线条
 for($i=0;$i<6;$i++){
  $_rnd_color = imagecolorallocate($_img,mt_rand(0,255),mt_rand(0,255),mt_rand(0,255));
  imageline($_img,mt_rand(0,$_width),mt_rand(0,$_width),mt_rand(0,$_width),mt_rand(0,$_width),$_rnd_color);
 }

 //随机画出雪花
 for($i=0;$i<60;$i++){
  imagestring($_img,1,mt_rand(1,$_width),mt_rand(1,$_height),"*",imagecolorallocate($_img,mt_rand(200,255),mt_rand(200,255),mt_rand(200,255)));
 }

 //输出验证码
 for($i=0;$i<strlen($_SESSION['code']);$i++){
  imagestring($_img,mt_rand(6,10),$i*$_width/4+mt_rand(1,10),mt_rand(1,$_height/2),$_SESSION['code'][$i],imagecolorallocate($_img,mt_rand(0,100),mt_rand(0,150),mt_rand(0,200)));
 }

 //输出和销毁
 header("Content-Type:image/png");
 imagepng($_img);
 imagedestroy($_img);
?>

PHP 相关文章推荐
PHP版 汉字转码的实现详解
Jun 09 PHP
不使用php api函数实现数组的交换排序示例
Apr 13 PHP
PHP callback函数使用方法和注意事项
Jan 23 PHP
PHP对文件夹递归执行chmod命令的方法
Jun 19 PHP
10个对初学者非常有用的PHP技巧
Apr 06 PHP
PHP HTTP 认证实例详解
Nov 03 PHP
php导出csv文件,可导出前导0实例代码
Nov 16 PHP
PHP API接口必备之输出json格式数据示例代码
Jun 27 PHP
php使用flock阻塞写入文件和非阻塞写入文件的实例讲解
Jul 10 PHP
Laravel接收前端ajax传来的数据的实例代码
Jul 20 PHP
PHP实现可添加水印与生成缩略图的图片处理工具类
Jan 16 PHP
PHP+MySQL实现输入页码跳转到指定页面功能示例
Jun 01 PHP
php生成随机密码自定义函数代码(简单快速)
May 10 #PHP
php实现按文件名搜索文件的远程文件查找器
May 10 #PHP
thinkphp实现面包屑导航(当前位置)例子分享
May 10 #PHP
php把数据表导出为Excel表的最简单、最快的方法(不用插件)
May 10 #PHP
php实现zip压缩文件解压缩代码分享(简单易懂)
May 10 #PHP
php使用正则过滤js脚本代码实例
May 10 #PHP
PHP实现的交通银行网银在线支付接口ECSHOP插件和使用例子
May 10 #PHP
You might like
PHP中其实也可以用方法链
2011/11/10 PHP
PHP封装的一个支持HTML、JS、PHP重定向的多功能跳转函数
2014/06/19 PHP
PHP动态生成指定大小随机图片的方法
2016/03/25 PHP
JavaScript中变量提升 Hoisting
2012/07/03 Javascript
JavaScript等比例缩放图片控制超出范围的图片
2013/08/06 Javascript
JavaScript实现维吉尼亚(Vigenere)密码算法实例
2013/11/22 Javascript
使用JS取得焦点(focus)元素代码
2014/03/22 Javascript
jQuery 获取/设置/删除DOM元素的属性以a元素为例
2014/05/23 Javascript
node.js中的fs.chmod方法使用说明
2014/12/18 Javascript
JavaScript判断图片是否已经加载完毕的方法汇总
2016/02/05 Javascript
jquery插件bootstrapValidator数据验证详解
2016/11/09 Javascript
单行 JS 实现移动端金钱格式的输入规则
2017/05/22 Javascript
React Native验证码倒计时工具类分享
2017/10/24 Javascript
AngularJS使用ng-repeat遍历二维数组元素的方法详解
2017/11/11 Javascript
React 高阶组件入门介绍
2018/01/11 Javascript
[01:14:35]DOTA2上海特级锦标赛B组资格赛#1 Alliance VS Fnatic第一局
2016/02/26 DOTA
[04:51]TI10典藏宝瓶Ⅱ外观视频展示
2020/08/15 DOTA
python使用递归解决全排列数字示例
2014/02/11 Python
python3.6 +tkinter GUI编程 实现界面化的文本处理工具(推荐)
2017/12/20 Python
Python迭代器与生成器用法实例分析
2018/07/09 Python
python协程之动态添加任务的方法
2019/02/19 Python
Django框架首页和登录页分离操作示例
2019/05/28 Python
python多进程并发demo实例解析
2019/12/13 Python
django rest framework serializer返回时间自动格式化方法
2020/03/31 Python
Python selenium键盘鼠标事件实现过程详解
2020/07/28 Python
HTML5 CSS3新的WEB标准和浏览器支持
2009/07/16 HTML / CSS
波兰快递服务:Globkurier.pl
2019/11/08 全球购物
Clos19英国:高档香槟、葡萄酒和烈酒在线购物平台
2020/07/10 全球购物
PHP面试题附答案
2015/11/28 面试题
工商管理专业实习大学生自我鉴定
2013/09/19 职场文书
会展策划与管理专业求职信
2014/06/09 职场文书
授权收款委托书
2014/09/23 职场文书
虎兄虎弟观后感
2015/06/12 职场文书
2015年小学生国庆节演讲稿
2015/07/30 职场文书
浅谈Python中的函数(def)及参数传递操作
2021/05/25 Python
微软Win11什么功能最惊艳? Windows11新功能特性汇总
2021/11/21 数码科技