一个简单的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 相关文章推荐
ADODB类使用
Nov 25 PHP
PHP教程 预定义变量
Oct 23 PHP
php url地址栏传中文乱码解决方法集合
Jun 25 PHP
php学习之数据类型之间的转换介绍
Jun 09 PHP
PHP统计二维数组元素个数的方法
Nov 12 PHP
PHP Web木马扫描器代码分享
Sep 06 PHP
使用xampp搭建运行php虚拟主机的详细步骤
Oct 21 PHP
ThinkPHP设置禁止百度等搜索引擎转码(简单实用)
Feb 15 PHP
PhpStorm terminal无法输入命令的解决方法
Oct 09 PHP
PHP实现上传图片到 zimg 服务器
Oct 19 PHP
PHP 应用容器化以及部署方法
Feb 12 PHP
php生成二维码不保存服务器还有下载功能的实现代码
Aug 09 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将网址字符串转换成超链接(网址或email)
2010/05/25 PHP
通过JavaScript或PHP检测Android设备的代码
2011/03/09 PHP
PHP中数字检测is_numeric与ctype_digit的区别介绍
2012/10/04 PHP
ThinkPHP中redirect用法分析
2014/12/05 PHP
浅谈PHP中单引号和双引号到底有啥区别呢?
2015/03/04 PHP
CentOS下PHP7的编译安装及MySQL的支持和一些常见问题的解决办法
2015/12/17 PHP
PHP微信支付开发实例
2016/06/22 PHP
PHP实现的Redis多库选择功能单例类
2017/07/27 PHP
PHP面向对象程序设计之对象克隆clone和魔术方法__clone()用法分析
2019/06/12 PHP
JQuery获取元素文档大小、偏移和位置和滚动条位置的方法集合
2010/01/12 Javascript
JQuery扩展插件Validate 3通过参数设置错误信息
2011/09/05 Javascript
开发 Internet Explorer 右键功能表(ContextMenu)
2013/07/03 Javascript
iframe实用操作锦集
2014/04/22 Javascript
js超时调用setTimeout和间歇调用setInterval实例分析
2015/01/28 Javascript
JS+CSS实现自动改变切换方向图片幻灯切换效果的方法
2015/03/02 Javascript
将JavaScript的jQuery库中表单转化为JSON对象的方法
2015/11/17 Javascript
javascript函数的四种调用模式
2017/01/08 Javascript
树结构之JavaScript
2017/01/24 Javascript
Vue-cli@3.0 插件系统简析
2018/09/05 Javascript
使用electron制作满屏心特效的示例代码
2018/11/27 Javascript
vue实现lodop打印功能的示例
2020/11/11 Javascript
[02:12]探秘2016国际邀请赛中国区预选赛选手房间
2016/06/25 DOTA
django rest framework之请求与响应(详解)
2017/11/06 Python
Pandas读写CSV文件的方法示例
2019/03/27 Python
matplotlib相关系统目录获取方式小结
2021/02/03 Python
HTML5 File API改善网页上传功能
2009/08/19 HTML / CSS
StubHub智利:购买和出售您的门票
2016/11/23 全球购物
采购内勤岗位职责
2013/12/10 职场文书
办护照工作证明范本
2014/01/14 职场文书
机关门卫的岗位职责
2014/04/29 职场文书
公关活动策划方案
2014/05/25 职场文书
爱护公物标语
2014/06/24 职场文书
公司委托书格式
2014/08/01 职场文书
2014年变电站工作总结
2014/12/19 职场文书
2019年度政务公开考核工作总结模板
2019/11/11 职场文书
Nginx反向代理、重定向
2022/04/13 Servers