一个简单的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 相关文章推荐
3.从实例开始
Oct 09 PHP
PHP数据缓存技术
Feb 14 PHP
PHP flock 文件锁详细介绍
Dec 29 PHP
PHP判断图片格式的七种方法小结
Jun 03 PHP
php发送post请求的三种方法
Feb 11 PHP
php检测文件编码的方法示例
Apr 25 PHP
PHP进程同步代码实例
Feb 12 PHP
详解PHP的Yii框架中组件行为的属性注入和方法注入
Mar 18 PHP
php图片上传类 附调用方法
May 15 PHP
PHP编程实现csv文件导入mysql数据库的方法
Apr 29 PHP
PHP查询分页的实现代码
Jun 09 PHP
PHP检查URL包含特定字符串实例方法
Feb 11 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支持页面回退的两种方法[转]
2007/02/14 PHP
PHP读取PDF内容配合Xpdf的使用
2012/11/24 PHP
PHP+iFrame实现页面无需刷新的异步文件上传
2014/09/16 PHP
PHP中加密解密函数与DES加密解密实例
2014/10/17 PHP
PHP清除数组中所有字符串两端空格的方法
2014/10/20 PHP
php查找指定目录下指定大小文件的方法
2014/11/28 PHP
php+ajax实现无刷新分页
2015/11/18 PHP
php提交过来的数据生成为txt文件
2016/04/28 PHP
AJAX PHP无刷新form表单提交的简单实现(推荐)
2016/09/09 PHP
PHP实现求两个字符串最长公共子串的方法示例
2017/11/17 PHP
Javascript 跨域访问解决方案
2009/02/14 Javascript
三个js循环的关键字示例(for与while)
2016/02/16 Javascript
jQuery Masonry瀑布流布局神器使用详解
2017/05/25 jQuery
简单介绍react redux的中间件的使用
2018/04/06 Javascript
vue elementui form表单验证的实现
2018/11/11 Javascript
使用vue实现HTML页面生成图片的方法
2020/03/12 Javascript
jQuery实现倒计时功能完整示例
2020/06/01 jQuery
javascript+Canvas实现画板功能
2020/06/23 Javascript
Django中实现点击图片链接强制直接下载的方法
2015/05/14 Python
python实现读取并显示图片的两种方法
2017/01/13 Python
Numpy 改变数组维度的几种方法小结
2018/08/02 Python
python调用百度REST API实现语音识别
2018/08/30 Python
解决webdriver.Chrome()报错:Message:'chromedriver' executable needs to be in Path
2019/06/12 Python
Django+zTree构建组织架构树的方法
2019/08/21 Python
Python的PIL库中getpixel方法的使用
2020/04/09 Python
tensorflow实现将ckpt转pb文件的方法
2020/04/22 Python
python有几个版本
2020/06/17 Python
OSPF有什么优点?为什么OSPF比RIP收敛快?
2013/02/13 面试题
老教师工作总结的自我评价
2013/09/27 职场文书
行政文员岗位职责
2013/11/08 职场文书
小学生我的梦想演讲稿
2014/08/21 职场文书
2014年纪委工作总结
2014/12/05 职场文书
2015关爱留守儿童工作总结
2014/12/12 职场文书
2015年感恩节演讲稿(优选篇)
2015/03/20 职场文书
安全教育主题班会总结
2015/08/14 职场文书
Python学习之异常中的finally使用详解
2022/03/16 Python