一个简单的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递归实现无限分类 格式化数组的详解
Jun 08 PHP
php生成图片缩略图的方法
Apr 07 PHP
ThinkPHP里用U方法调用js文件实例
Jun 18 PHP
PHP中each与list用法分析
Jan 08 PHP
9个比较实用的php代码片段
Mar 15 PHP
[原创]解决wincache不支持64位PHP5.5/5.6的问题(提供64位wincache下载)
Jun 22 PHP
详解PHP安装mysql.so扩展的方法
Dec 31 PHP
ThinkPHP中create()方法自动验证表单信息
Apr 28 PHP
PHP笛卡尔积实现算法示例
Jul 30 PHP
PHP通过get方法获得form表单数据方法总结
Sep 12 PHP
PHP递归算法的简单实例
Feb 28 PHP
php用户名的密码加密更安全的方法
Jun 21 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
40年前的这部特摄片恐龙特级克塞号80后的共同回忆
2020/03/08 日漫
PHP+AJAX实现无刷新注册(带用户名实时检测)
2007/01/02 PHP
php 防止单引号,双引号在接受页面转义
2008/07/10 PHP
PHP之数组学习
2011/05/29 PHP
PHP基础学习之流程控制的实现分析
2013/04/28 PHP
PHP截取指定图片大小的方法
2014/12/10 PHP
php实现图片上传时添加文字和图片水印技巧
2020/04/18 PHP
Yii框架引入coreseek分页功能示例
2019/02/08 PHP
javascript 类型判断代码分析
2010/03/28 Javascript
网页图片延时加载的js代码
2010/04/22 Javascript
Date对象格式化函数代码
2010/07/17 Javascript
基于mootools 1.3框架下的图片滑动效果代码
2011/04/22 Javascript
基于jQuery的input输入框下拉提示层(自动邮箱后缀名)
2012/06/14 Javascript
通过正则格式化url查询字符串实现代码
2012/12/28 Javascript
浏览器窗口加载和大小改变事件示例
2014/02/27 Javascript
JavaScript实现关键字高亮功能
2014/11/12 Javascript
jQuery中empty()方法用法实例
2015/01/16 Javascript
BootStrap中的table实现数据填充与分页应用小结
2016/05/26 Javascript
jQuery实现鼠标滑过图片移动特效
2016/12/08 Javascript
深入理解React Native原生模块与JS模块通信的几种方式
2017/07/24 Javascript
JS实现图片放大镜插件详解
2017/11/06 Javascript
js生成word中图片处理方法
2018/01/06 Javascript
Angular父组件调用子组件的方法
2018/04/02 Javascript
vue-router动态设置页面title的实例讲解
2018/08/30 Javascript
利用vue重构有赞商城的思路以及总结整理
2019/02/21 Javascript
Python自定义主从分布式架构实例分析
2016/09/19 Python
python 读取DICOM头文件的实例
2018/05/07 Python
Linux下Python安装完成后使用pip命令的详细教程
2018/11/22 Python
Python logging日志库空间不足问题解决
2020/09/14 Python
Joe Fresh官网:加拿大时尚品牌和零售连锁店
2016/11/30 全球购物
C语言笔试题回忆
2015/04/02 面试题
求职教师自荐书
2014/06/19 职场文书
个人授权委托书范文
2014/09/21 职场文书
教师个人年度总结
2015/02/11 职场文书
大学生村官入党自传
2015/06/26 职场文书
用 Python 定义 Schema 并生成 Parquet 文件详情
2021/09/25 Python