一个简单的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的开合式多级菜单程序
Oct 09 PHP
使用 eAccelerator加速PHP代码的目的
Mar 16 PHP
PHP中读写文件实现代码
Oct 20 PHP
PHP采集腾讯微博的实现代码
Jan 19 PHP
PHP计算2点经纬度之间的距离代码
Aug 12 PHP
Windows下的PHP安装pear教程
Oct 24 PHP
PHP递归复制、移动目录的自定义函数分享
Nov 18 PHP
5款适合PHP使用的HTML编辑器推荐
Jul 03 PHP
CI框架数据库查询之join用法分析
May 18 PHP
PHP实现截取中文字符串不出现?号的解决方法
Dec 29 PHP
yii2 commands模式以及配置crontab定时任务的方法
Aug 19 PHP
PHP中“=&gt;
Mar 01 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
一个更简单的无限级分类菜单代码
2007/01/16 PHP
PHP生成UTF8文件的方法
2010/05/15 PHP
PHP文件注释标记及规范小结
2012/04/01 PHP
PHP命名空间(Namespace)简明教程
2014/06/11 PHP
PHP+jquery+ajax实现即时聊天功能实例
2014/12/23 PHP
php中preg_match的isU代表什么意思
2015/10/01 PHP
表单序列化与jq中的serialize使用示例
2014/02/21 Javascript
表单提交前触发函数返回true表单才会提交
2014/03/11 Javascript
js获取表格的行数和列数的方法
2015/10/23 Javascript
动态加载JavaScript文件的两种方法
2016/04/22 Javascript
jQuery中each()、find()和filter()等节点操作方法详解(推荐)
2016/05/25 Javascript
JavaScript仿微博输入框效果(案例分析)
2016/12/06 Javascript
jquery.form.js异步提交表单详解
2017/04/25 jQuery
关于vue-resource报错450的解决方案
2017/07/24 Javascript
webpack构建换肤功能的思路详解
2017/11/27 Javascript
使用express搭建一个简单的查询服务器的方法
2018/02/09 Javascript
vue.js数据绑定操作详解
2018/04/23 Javascript
微信小程序API—获取定位的详解
2019/04/30 Javascript
JavaScript相等运算符的九条规则示例详解
2019/10/20 Javascript
Nodejs在局域网配置https访问的实现方法
2020/10/17 NodeJs
[44:26]DOTA2上海特级锦标赛主赛事日 - 2 胜者组第一轮#4EG VS Fnatic第二局
2016/03/03 DOTA
发布你的Python模块详解
2016/09/15 Python
200行自定义python异步非阻塞Web框架
2017/03/15 Python
Python 爬虫之超链接 url中含有中文出错及解决办法
2017/08/03 Python
Python基于回溯法子集树模板解决全排列问题示例
2017/09/07 Python
python利用正则表达式搜索单词示例代码
2017/09/24 Python
Python实现购物车购物小程序
2018/04/18 Python
Django设置Postgresql的操作
2020/05/14 Python
Python实现弹球小游戏
2020/08/01 Python
Python读取Excel一列并计算所有对象出现次数的方法
2020/09/04 Python
详解前端HTML5几种存储方式的总结
2016/12/27 HTML / CSS
Lungolivigno Fashion官网:高级时装在线购物
2020/10/17 全球购物
新学期开学演讲稿
2014/05/24 职场文书
大学生党性分析材料
2014/12/19 职场文书
初中毕业生自我评价
2015/03/02 职场文书
vue2的 router在使用过程中遇到的一些问题
2022/04/13 Vue.js