一个简单的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 和 MySQL 时区的一点总结
Mar 26 PHP
生成卡号php代码
Apr 09 PHP
PHP的substr_replace将指定两位置之间的字符替换为*号
May 04 PHP
PHP遍历某个目录下的所有文件和子文件夹的实现代码
Jun 28 PHP
计算php页面运行时间的函数介绍
Jul 01 PHP
php+ajax实现的点击浏览量加1
Apr 16 PHP
php准确计算复活节日期的方法
Apr 18 PHP
PHP生成唯一ID之SnowFlake算法
Dec 17 PHP
thinkphp整合系列之极验滑动验证码geetest功能
Jun 18 PHP
Laravel timestamps 设置为unix时间戳的方法
Oct 11 PHP
解决PHP使用CURL发送GET请求时传递参数的问题
Oct 11 PHP
php使用fputcsv实现大数据的导出操作详解
Feb 27 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
星际争霸任务指南——人族
2020/03/04 星际争霸
PHP中GET变量的使用
2006/10/09 PHP
关于session在PHP5的配置文件中的详细设置参数说明
2011/04/20 PHP
分割GBK中文遭遇乱码的解决方法
2013/08/09 PHP
PHP版微信公众平台红包API
2015/04/02 PHP
PHP数组操作类实例
2015/07/11 PHP
Laravel中日期时间处理包Carbon的简单使用
2017/09/21 PHP
PHP设计模式之PHP迭代器模式讲解
2019/03/22 PHP
Javascript new关键字的玄机 以及其它
2010/08/25 Javascript
在网站上应该用的30个jQuery插件整理
2011/11/03 Javascript
JS 跳转页面延迟2种方法
2013/03/29 Javascript
解析window.open的使用方法总结
2013/06/19 Javascript
jQuery创建自定义的选择器用以选择高度大于100的超链接实例
2015/03/18 Javascript
jQuery层动画定位滑动效果的方法
2015/04/30 Javascript
jQuery通用的全局遍历方法$.each()用法实例
2016/07/04 Javascript
jquery把int类型转换成字符串类型的方法
2016/10/07 Javascript
JavaScript、C# URL编码、解码总结
2017/01/21 Javascript
JS中Attr的用法详解
2017/10/09 Javascript
vue.js中使用微信扫一扫解决invalid signature问题(完美解决)
2020/04/11 Javascript
Python使用getpass库读取密码的示例
2017/10/10 Python
matplotlib中legend位置调整解析
2017/12/19 Python
python3爬取torrent种子链接实例
2020/01/16 Python
python:批量统计xml中各类目标的数量案例
2020/03/10 Python
Python2及Python3如何实现兼容切换
2020/09/01 Python
pytorch 移动端部署之helloworld的使用
2020/10/30 Python
校企合作协议书
2014/04/16 职场文书
爱我中华教学反思
2014/04/28 职场文书
感恩教育月活动总结
2014/07/07 职场文书
报名委托书
2015/01/29 职场文书
小学教师个人总结
2015/02/05 职场文书
2016年党员创先争优公开承诺书
2016/03/25 职场文书
原生JS中应该禁止出现的写法
2021/05/05 Javascript
MongoDB orm框架的注意事项及简单使用
2021/06/20 MongoDB
Python函数式编程中itertools模块详解
2021/09/15 Python
Python中的turtle画箭头,矩形,五角星
2022/03/16 Python
Python内置包对JSON文件数据进行编码和解码
2022/04/12 Python