一个简单的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 相关文章推荐
基于数据库的在线人数,日访问量等统计
Oct 09 PHP
PHP获取当前文件所在目录 getcwd()函数
May 13 PHP
PHP 5.3.0 安装分析心得
Aug 07 PHP
PHP通过session id 实现session共享和登录验证的代码
Jun 03 PHP
PHP之APC缓存详细介绍 apc模块安装
Jan 13 PHP
typecho插件编写教程(六):调用接口
May 28 PHP
PHP AjaxForm提交图片上传并显示图片源码
Nov 29 PHP
浅谈php中curl、fsockopen的应用
Dec 10 PHP
详解使用php调用微信接口上传永久素材
Apr 11 PHP
PHP基于PDO调用sqlserver存储过程通用方法【基于Yii框架】
Oct 07 PHP
基于PHP实现邮箱验证激活过程详解
Oct 28 PHP
PHP mkdir创建文件夹实现方法解析
Nov 13 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内嵌函数用法实例
2015/03/20 PHP
PHP迭代器和迭代的实现与使用方法分析
2018/04/19 PHP
雄兵连第三季海报曝光,艾妮熙德成主角,蔷薇新造型
2021/03/09 国漫
jquery1.5.1中根据元素ID获取元素对象的代码
2011/04/02 Javascript
jCallout 轻松实现气泡提示功能
2013/09/22 Javascript
jQuery Trim去除字符串首尾空字符的实现方法说明
2014/02/11 Javascript
jQuery中:gt选择器用法实例
2014/12/29 Javascript
Jquery中request和request.form和request.querystring的区别
2015/11/26 Javascript
适用于javascript开发者的Processing.js入门教程
2016/02/24 Javascript
JS提示:Uncaught SyntaxError:Unexpected token ) 错误的解决方法
2016/08/19 Javascript
JS+Canvas实现的俄罗斯方块游戏完整实例
2016/12/12 Javascript
ES6概念 Symbol toString()方法
2016/12/25 Javascript
JS仿JQuery选择器功能
2017/03/08 Javascript
node使用UEditor富文本编辑器的方法实例
2017/07/11 Javascript
JavaScript实现图片本地预览功能【不用上传至服务器】
2017/09/20 Javascript
jQuery的Ajax接收java返回数据方法
2018/08/11 jQuery
vue主动刷新页面及列表数据删除后的刷新实例
2018/09/16 Javascript
Vue实现todo应用的示例
2021/02/20 Vue.js
[06:45]DOTA2卡尔工作室 英雄介绍幻影长矛手篇
2013/07/12 DOTA
Python去掉字符串中空格的方法
2014/03/11 Python
机器学习python实战之手写数字识别
2017/11/01 Python
Python设计模式之桥接模式原理与用法实例分析
2019/01/10 Python
python实现Dijkstra静态寻路算法
2019/01/17 Python
Python3.5基础之变量、数据结构、条件和循环语句、break与continue语句实例详解
2019/04/26 Python
python如何制作缩略图
2019/04/30 Python
在django中使用apscheduler 执行计划任务的实现方法
2020/02/11 Python
Pycharm github配置实现过程图解
2020/10/13 Python
C#如何判断当前用户是否输入某个域
2015/12/07 面试题
入党思想汇报怎么写
2014/04/03 职场文书
个人委托书怎么写
2014/04/04 职场文书
婚前协议书范本
2014/04/15 职场文书
医院反腐倡廉演讲稿
2014/09/16 职场文书
2014物价局群众路线对照检查材料思想汇报
2014/09/21 职场文书
迟到检讨书范文
2015/01/27 职场文书
入党积极分子个人总结
2015/03/02 职场文书
火烧圆明园观后感
2015/06/03 职场文书