一个简单的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 json_encode奇怪问题说明
Sep 27 PHP
PHP URL参数获取方式的四种例子
Feb 28 PHP
从零开始学YII2框架(二)通过 Composer 安装扩展插件
Aug 20 PHP
腾讯微博提示missing parameter errorcode 102 错误的解决方法
Dec 22 PHP
thinkphp备份数据库的方法分享
Jan 04 PHP
php页面缓存方法小结
Jan 10 PHP
如何实现php图片等比例缩放
Jul 28 PHP
刷新PHP缓冲区为你的站点加速
Oct 10 PHP
yii2使用ajax返回json的实现方法
May 14 PHP
php自定义函数实现JS的escape的方法示例
Jul 07 PHP
curl 出现错误的调试方法(必看)
Feb 13 PHP
PHP静态成员变量和非静态成员变量详解
Feb 14 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
阿拉伯的咖啡与水烟
2021/03/03 咖啡文化
杏林同学录(二)
2006/10/09 PHP
PHP中基于ts与nts版本- vc6和vc9编译版本的区别详解
2013/04/26 PHP
解析在apache里面给php写虚拟目录的详细方法
2013/06/24 PHP
PHP中加密解密函数与DES加密解密实例
2014/10/17 PHP
PHP向浏览器输出内容的4个函数总结
2014/11/17 PHP
PHP实现算式验证码和汉字验证码实例
2015/03/09 PHP
分享10段PHP常用代码
2015/11/11 PHP
详细解读php的命名空间(一)
2018/02/21 PHP
浅析PHP类的反射来实现依赖注入过程
2018/02/06 PHP
使用composer命令加载vendor中的第三方类库 的方法
2019/07/09 PHP
js获取当前路径的简单示例代码
2014/01/08 Javascript
javascript调试之DOM断点调试法使用技巧分享
2014/04/15 Javascript
jQuery获得指定元素坐标的方法
2015/04/14 Javascript
Webpack常见静态资源处理-模块加载器(Loaders)+ExtractTextPlugin插件
2017/06/29 Javascript
详解react-router 4.0 下服务器如何配合BrowserRouter
2017/12/29 Javascript
vue中post请求以a=a&amp;b=b 的格式写遇到的问题
2018/04/27 Javascript
在微信小程序中保存网络图片
2019/02/12 Javascript
layui的select联动实现代码
2019/09/28 Javascript
vue 避免变量赋值后双向绑定的操作
2020/11/07 Javascript
[05:13]2018DOTA2亚洲邀请赛主赛事第二日战况回顾 LGD、VG双雄携手晋级
2018/04/05 DOTA
Python基于checksum计算文件是否相同的方法
2015/07/09 Python
python实现定时自动备份文件到其他主机的实例代码
2018/02/23 Python
Python人工智能之路 之PyAudio 实现录音 自动化交互实现问答
2019/08/13 Python
python协程gevent案例 爬取斗鱼图片过程解析
2019/08/27 Python
Django自带日志 settings.py文件配置方法
2019/08/30 Python
如何基于Python制作有道翻译小工具
2019/12/16 Python
Python numpy多维数组实现原理详解
2020/03/10 Python
Farah官方网站:男士服装及配件
2019/11/01 全球购物
护士毕业生自我鉴定
2014/02/08 职场文书
党员入党表决心的话
2014/03/11 职场文书
出纳会计岗位职责
2014/03/12 职场文书
计算机毕业生自荐信
2014/06/12 职场文书
2014年中班下学期工作总结
2014/12/11 职场文书
反腐倡廉学习心得体会范文
2015/08/15 职场文书
JavaScript流程控制(分支)
2021/12/06 Javascript