一个简单的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 文件上传进度条的两种实现方法的代码
Nov 25 PHP
php 大数据量及海量数据处理算法总结
May 07 PHP
php 判断字符串中是否包含html标签
Feb 17 PHP
PHP 面向对象程序设计(oop)学习笔记(一) - 抽象类、对象接口、instanceof 和契约式编程
Jun 12 PHP
php中addslashes函数与sql防注入
Nov 17 PHP
php生成高清缩略图实例详解
Dec 07 PHP
mysql查找删除重复数据并只保留一条实例详解
Sep 24 PHP
php 修改上传文件大小限制实例详解
Oct 23 PHP
php二维码生成以及下载实现
Sep 28 PHP
Laravel框架自定义公共函数的引入操作示例
Apr 16 PHP
PHP使用PhpSpreadsheet操作Excel实例详解
Mar 26 PHP
PHP设计模式入门之迭代器模式原理与实现方法分析
Apr 26 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
ThinkPHP框架安全实现分析
2016/03/14 PHP
php常用图片处理类
2016/03/16 PHP
Smarty保留变量用法分析
2016/05/23 PHP
Extjs学习笔记之一 初识Extjs之MessageBox
2010/01/07 Javascript
Google (Local) Search API的简单使用介绍
2013/11/28 Javascript
JQuery select(下拉框)操作方法汇总
2015/04/15 Javascript
图片旋转、鼠标滚轮缩放、镜像、切换图片js代码
2020/12/13 Javascript
Bootstrap学习笔记之css样式设计(1)
2016/06/07 Javascript
jQuery+Ajax实现限制查询间隔的方法
2016/06/07 Javascript
jquery dialog获取焦点的方法
2017/02/09 Javascript
Jquery中.bind()、.live()、.delegate()和.on()之间的区别详解
2017/08/01 jQuery
ReactNative页面跳转Navigator实现的示例代码
2017/08/02 Javascript
js基于FileSaver.js 浏览器导出Excel文件的示例
2017/08/15 Javascript
node跨域请求方法小结
2017/08/25 Javascript
JavaScript编程设计模式之构造器模式实例分析
2017/10/25 Javascript
基于Vue 2.0的模块化前端 UI 组件库小结
2017/12/21 Javascript
Angular4学习之Angular CLI的安装与使用教程
2018/01/04 Javascript
vue自定义移动端touch事件之点击、滑动、长按事件
2018/07/10 Javascript
微信上传视频文件提示(推荐)
2018/11/22 Javascript
Openlayers实现图形绘制
2020/09/28 Javascript
如何利用Fabric自动化你的任务
2016/10/20 Python
Python探索之静态方法和类方法的区别详解
2017/10/27 Python
利用python将json数据转换为csv格式的方法
2018/03/22 Python
Python 3.8新特征之asyncio REPL
2019/05/28 Python
Django import export实现数据库导入导出方式
2020/04/03 Python
python实现简单猜单词游戏
2020/12/24 Python
Django url 路由匹配过程详解
2021/01/22 Python
英国最大的百货公司:Harrods
2016/08/18 全球购物
Reebok俄罗斯官方网上商店:购买锐步运动服装和鞋子
2016/09/26 全球购物
金额转换,阿拉伯数字的金额转换成中国传统的形式如:(¥1011)-> (一千零一拾一元整)输出
2015/05/29 面试题
财务部岗位职责
2013/11/19 职场文书
电子商务自荐书范文
2014/01/04 职场文书
俞敏洪励志演讲稿
2014/04/29 职场文书
投诉书格式范本
2015/07/02 职场文书
教师实习自我鉴定总结
2019/08/20 职场文书
使用Redis实现实时排行榜功能
2021/07/02 Redis