一个简单的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 提速工具eAccelerator 配置参数详解
May 16 PHP
PHP下使用CURL方式POST数据至API接口的代码
Feb 14 PHP
使用php 获取时间今天明天昨天时间戳的详解
Jun 20 PHP
根据中文裁减字符串函数的php代码
Dec 03 PHP
php中使用url传递数组的方法
Feb 11 PHP
PHP批量查询WordPress留言者E-mail地址实现方法
Feb 15 PHP
php eval函数一句话木马代码
May 21 PHP
在Mac上编译安装PHP7的开发环境
Jul 28 PHP
php 如何获取文件的后缀名
Jun 05 PHP
php基于PDO实现功能强大的MYSQL封装类实例
Feb 27 PHP
PHP 中 var_export、print_r、var_dump 调试中的区别
Jun 19 PHP
laravel5.6框架操作数据curd写法(查询构建器)实例分析
Jan 26 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将access数据库转换到mysql数据库的方法
2014/12/24 PHP
PHP实现将多个文件压缩成zip格式并下载到本地的方法示例
2018/05/23 PHP
PHP实现的支付宝支付功能示例
2019/03/26 PHP
编写Js代码要注意的几条规则
2010/09/10 Javascript
JavaScript对象之间的转换 jQuery对象和原声DOM
2011/03/07 Javascript
jQuery制作仿Mac Lion OS滚动条效果
2015/02/10 Javascript
JavaScript使用FileSystemObject对象写入文本文件内容的方法
2015/08/05 Javascript
javascript中不易分清的slice,splice和split三个函数
2016/03/29 Javascript
纯css下拉菜单 无需js
2016/08/15 Javascript
Vue AST源码解析第一篇
2017/07/19 Javascript
使用JS实现图片轮播的实例(前后首尾相接)
2017/09/21 Javascript
jQuery实现参数自定义的文字跑马灯效果
2018/08/15 jQuery
Python采用socket模拟TCP通讯的实现方法
2014/11/19 Python
Python 自动补全(vim)
2014/11/30 Python
Python实现的根据文件名查找数据文件功能示例
2018/05/02 Python
Python第三方库h5py_读取mat文件并显示值的方法
2019/02/08 Python
python开发准备工作之配置虚拟环境(非常重要)
2019/02/11 Python
pandas取出重复数据的方法
2019/07/04 Python
讲解Python3中NumPy数组寻找特定元素下标的两种方法
2019/08/04 Python
基于python实现判断字符串是否数字算法
2020/07/10 Python
英国经典球衣网站:Classic Football Shirts
2017/05/20 全球购物
聪明的粉丝购买门票的地方:TickPick
2018/03/09 全球购物
美国在线纱线商店:Darn Good Yarn
2019/03/20 全球购物
创业计划书的主要内容有哪些
2014/01/29 职场文书
小学数学国培感言
2014/03/10 职场文书
初中班主任评语大全
2014/04/24 职场文书
预备党员学习十八届三中全会精神思想汇报
2014/09/13 职场文书
新员工考核评语
2014/12/31 职场文书
员工评语范文
2014/12/31 职场文书
武侯祠导游词
2015/02/04 职场文书
《游戏公平》教学反思
2016/02/20 职场文书
竞聘书的秘诀
2019/04/02 职场文书
Nginx 502 Bad Gateway错误原因及解决方案
2021/03/31 Servers
vue 实现上传组件
2021/05/31 Vue.js
Java 泛型详解(超详细的java泛型方法解析)
2021/07/02 Java/Android
div与span之间的区别与使用介绍
2021/12/06 HTML / CSS