一个简单的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脚本的10个技巧(4)
Oct 09 PHP
PHP 应用程序的安全 -- 不能违反的四条安全规则
Nov 26 PHP
shopex主机报错误请求解决方案(No such file or directory)
Dec 27 PHP
PHP高手需要要掌握的知识点
Aug 21 PHP
php递归调用删除数组空值元素的方法
Apr 28 PHP
php生成curl命令行的方法
Dec 14 PHP
PHP使用pear实现mail发送功能 windows环境下配置pear
Apr 15 PHP
php制作基于xml的RSS订阅源功能示例
Feb 08 PHP
php登录超时检测功能实例详解
Mar 21 PHP
PHP图片水印类的封装
Jul 06 PHP
在Ubuntu 18.04上安装PHP 7.3 7.2和7.0的方法
Apr 09 PHP
PHP进阶学习之反射基本概念与用法分析
Jun 18 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 生成WML页面方法详解
2009/08/09 PHP
PHP+Mysql+jQuery实现发布微博程序 jQuery篇
2011/10/08 PHP
如何使用Strace调试工具
2013/06/03 PHP
php实现仿写CodeIgniter的购物车类
2015/07/29 PHP
分享10段PHP常用代码
2015/11/11 PHP
PHP的Yii框架的常用日志操作总结
2015/12/08 PHP
关于WordPress的SEO优化相关的一些PHP页面脚本技巧
2015/12/10 PHP
Javascript SHA-1:Secure Hash Algorithm
2006/12/20 Javascript
js调用图片隐藏&amp;显示实现代码
2013/09/13 Javascript
jQuery实现鼠标经过图片预览大图效果
2014/04/10 Javascript
一个简单的jquery的多选下拉框(自写)
2014/05/05 Javascript
AngularJS 中的数据源的循环输出
2017/10/12 Javascript
Bootstrap栅格系统的使用详解
2017/10/30 Javascript
vue拦截器实现统一token,并兼容IE9验证功能
2018/04/26 Javascript
快速解决Vue项目在IE浏览器中显示空白的问题
2018/09/04 Javascript
vue里面使用mui的弹出日期选择插件实例
2018/09/16 Javascript
每周一练 之 数据结构与算法(Stack)
2019/04/16 Javascript
全局安装 Vue cli3 和 继续使用 Vue-cli2.x操作
2020/09/08 Javascript
[01:08]DOTA2“血战之命”预告片
2017/08/12 DOTA
[02:51]DOTA2 Supermajor小组分组对阵抽签仪式
2018/06/01 DOTA
使用Turtle画正螺旋线的方法
2017/09/22 Python
python3连接MySQL数据库实例详解
2018/05/24 Python
详解python中GPU版本的opencv常用方法介绍
2020/07/24 Python
Python3爬虫中识别图形验证码的实例讲解
2020/07/30 Python
FORZIERI澳大利亚站:全球顶级奢华配饰精品店
2016/12/31 全球购物
什么是servlet
2012/05/08 面试题
自考生自我评价分享
2014/01/18 职场文书
幼儿园感恩节活动方案
2014/10/06 职场文书
村干部群众路线整改措施思想汇报
2014/10/12 职场文书
教师党员自我评议不足范文
2014/10/19 职场文书
2016年百日安全生产活动总结
2016/04/06 职场文书
go mod 安装依赖 unkown revision问题的解决方案
2021/05/06 Golang
Python 机器学习工具包SKlearn的安装与使用
2021/05/14 Python
CSS filter 有什么神奇用途
2021/05/25 HTML / CSS
浅析Redis Sentinel 与 Redis Cluster
2021/06/24 Redis
yolov5返回坐标的方法实例
2022/03/17 Python