一个简单的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连接MySQL代码的参数说明
Jun 07 PHP
常用的php对象类型判断
Aug 27 PHP
PHP 读取文件内容代码(txt,js等)
Dec 06 PHP
PHP数据流应用的一个简单实例
Sep 14 PHP
mysql,mysqli,PDO的各自不同介绍
Sep 19 PHP
Win2003+apache+PHP+SqlServer2008 配置生产环境
Jul 29 PHP
zend framework框架中url大小写问题解决方法
Aug 19 PHP
Yii框架登录流程分析
Dec 03 PHP
你不知道的文件上传漏洞php代码分析
Sep 29 PHP
php利用gd库为图片添加水印
Nov 09 PHP
解析 thinkphp 框架中的部分方法
May 07 PHP
php实现登录页面的简单实例
Sep 29 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生成静态页面详解
2006/11/19 PHP
同一空间绑定多个域名而实现访问不同页面的PHP代码
2006/12/06 PHP
基于thinkPHP框架实现留言板的方法
2016/10/17 PHP
老生常谈php中传统验证与thinkphp框架(必看篇)
2017/06/10 PHP
PHP实现基本留言板功能原理与步骤详解
2020/03/26 PHP
phpstorm激活码2020附使用详细教程
2020/09/25 PHP
善用事件代理,警惕闭包的性能陷阱。
2011/01/20 Javascript
关于二级域名下使用一级域名下的COOKIE的问题
2011/11/07 Javascript
深入理解JavaScript系列(1) 编写高质量JavaScript代码的基本要点
2012/01/15 Javascript
js控制CSS样式属性语法对照表
2012/12/11 Javascript
div当滚动到页面顶部的时候固定在顶部实例代码
2013/05/27 Javascript
深入理解jquery自定义动画animate()
2016/05/24 Javascript
jquery实现下拉框左右选择功能
2017/02/21 Javascript
nodejs搭建本地服务器并访问文件的方法
2017/03/03 NodeJs
vue.js实现刷新当前页面的方法教程
2017/07/05 Javascript
JavaScript封装的常用工具类库bee.js用法详解【经典类库】
2018/09/03 Javascript
详解如何在vue项目中使用layui框架及采坑
2019/05/05 Javascript
JS中call()和apply()的功能及用法实例分析
2019/06/28 Javascript
Node.js使用MongoDB的ObjectId作为查询条件的方法
2019/09/10 Javascript
手把手教你如何编译打包video.js
2020/12/09 Javascript
[02:58]献给西雅图的情书_高清
2014/05/29 DOTA
Python中列表(list)操作方法汇总
2014/08/18 Python
python获取标准北京时间的方法
2015/03/24 Python
Python实现Youku视频批量下载功能
2017/03/14 Python
tensorflow训练中出现nan问题的解决
2018/02/10 Python
Django中使用Celery的方法示例
2018/11/29 Python
python+selenium定时爬取丁香园的新型冠状病毒数据并制作出类似的地图(部署到云服务器)
2020/02/09 Python
Python读取分割压缩TXT文本文件实例
2020/02/14 Python
Python爬虫+tkinter界面实现历史天气查询的思路详解
2021/02/22 Python
国际鲜花速递专家:Floraqueen
2016/11/24 全球购物
主题实践活动总结
2014/05/08 职场文书
办公室文员岗位职责范本
2014/06/12 职场文书
2015年青年教师工作总结
2015/05/25 职场文书
利用Sharding-Jdbc进行分库分表的操作代码
2022/01/22 Java/Android
我国拿下天问一号火星着陆区附近 22 个地理实体命名:平乐、西柏坡、古田、漠河等
2022/04/29 数码科技
Redis基本数据类型Set常用操作命令
2022/06/01 Redis