一个简单的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 连接mssql数据库 初学php笔记
Mar 01 PHP
PHPExcel读取Excel文件的实现代码
Dec 06 PHP
PHP对象转换为数组函数(递归方法)
Feb 04 PHP
解析php中heredoc的使用方法
Jun 17 PHP
php加密算法之实现可逆加密算法和解密分享
Jan 21 PHP
ThinkPHP中公共函数路径和配置项路径的映射分析
Nov 22 PHP
thinkphp实现上一篇与下一篇的方法
Dec 08 PHP
PHP中Session和Cookie是如何操作的
Oct 10 PHP
详谈php静态方法及普通方法的区别
Oct 04 PHP
thinkPHP内置字符串截取函数用法详解
Nov 15 PHP
Yii2.0使用阿里云OSS的SDK上传图片、下载、删除图片示例
Sep 20 PHP
PHP配合fiddler抓包抓取微信指数小程序数据的实现方法分析
Jan 02 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
超强分页类2.0发布,支持自定义风格,默认4种显示模式
2007/01/02 PHP
一段php加密解密的代码
2007/07/16 PHP
php从数据库查询结果生成树形列表的方法
2015/04/17 PHP
JavaScript实现禁止后退的方法
2006/12/27 Javascript
简单三步,搞掂内存泄漏
2007/03/10 Javascript
一个js封装的不错的选项卡效果代码
2008/02/15 Javascript
鼠标移动到图片名上,显示图片的简单实例
2013/07/14 Javascript
使用POST方式弹出窗口的两种方法示例介绍
2014/01/29 Javascript
javascript获取系统当前时间的方法
2015/11/19 Javascript
学习JavaScript设计模式之单例模式
2016/01/19 Javascript
jQuery操作cookie
2016/08/08 Javascript
利用Angular.js限制textarea输入的字数
2016/10/20 Javascript
JS图片压缩(pc端和移动端都适用)
2017/01/12 Javascript
CKeditor富文本编辑器使用技巧之添加自定义插件的方法
2019/06/14 Javascript
vue中使用GraphQL的实例代码
2019/11/04 Javascript
原生JS实现留言板功能
2020/02/08 Javascript
vue项目打包之开发环境和部署环境的实现
2020/04/23 Javascript
vue抽出组件并传值实例
2020/07/31 Javascript
python简单判断序列是否为空的方法
2015/06/30 Python
python障碍式期权定价公式
2019/07/19 Python
python中使用while循环的实例
2019/08/05 Python
用python画一只可爱的皮卡丘实例
2019/11/21 Python
Python利用matplotlib绘制散点图的新手教程
2020/11/05 Python
html5 乒乓球(碰撞检测)实例二
2013/07/25 HTML / CSS
html5中canvas图表实现柱状图的示例
2017/11/13 HTML / CSS
美国运动鞋和运动服零售商:Footaction
2017/04/07 全球购物
京东全球售:直邮香港,澳门,台湾,美国,澳大利亚等地区
2017/09/24 全球购物
德国综合购物网站:OTTO
2018/11/13 全球购物
消防安全宣传标语
2014/06/07 职场文书
党员批评与自我批评范文
2014/09/23 职场文书
终止劳动合同协议书
2014/10/05 职场文书
万能检讨书2000字
2014/10/17 职场文书
2014年后勤工作总结
2014/11/18 职场文书
爱心捐书倡议书
2015/04/27 职场文书
2015领导干部廉洁自律工作总结
2015/07/23 职场文书
使用HTML+Css+transform实现3D导航栏的示例代码
2021/03/31 HTML / CSS