支持中文、字母、数字的PHP验证码


Posted in PHP onMay 04, 2015

本文以实例演示5种验证码,并介绍生成验证码的函数。PHP生成验证码的原理:通过GD库,生成一张带验证码的图片,并将验证码保存在Session中。

支持中文、字母、数字的PHP验证码

session_start(); 
getCode(4,60,20); 
  
function getCode($num,$w,$h) { 
  $code = ""; 
  for ($i = 0; $i < $num; $i++) { 
    $code .= rand(0, 9); 
  } 
  //4位验证码也可以用rand(1000,9999)直接生成 
  //将生成的验证码写入session,备验证时用 
  $_SESSION["helloweba_num"] = $code; 
  //创建图片,定义颜色值 
  header("Content-type: image/PNG"); 
  $im = imagecreate($w, $h); 
  $black = imagecolorallocate($im, 0, 0, 0); 
  $gray = imagecolorallocate($im, 200, 200, 200); 
  $bgcolor = imagecolorallocate($im, 255, 255, 255); 
  //填充背景 
  imagefill($im, 0, 0, $gray); 
  
  //画边框 
  imagerectangle($im, 0, 0, $w-1, $h-1, $black); 
  
  //随机绘制两条虚线,起干扰作用 
  $style = array ($black,$black,$black,$black,$black, 
    $gray,$gray,$gray,$gray,$gray 
  ); 
  imagesetstyle($im, $style); 
  $y1 = rand(0, $h); 
  $y2 = rand(0, $h); 
  $y3 = rand(0, $h); 
  $y4 = rand(0, $h); 
  imageline($im, 0, $y1, $w, $y3, IMG_COLOR_STYLED); 
  imageline($im, 0, $y2, $w, $y4, IMG_COLOR_STYLED); 
  
  //在画布上随机生成大量黑点,起干扰作用; 
  for ($i = 0; $i < 80; $i++) { 
    imagesetpixel($im, rand(0, $w), rand(0, $h), $black); 
  } 
  //将数字随机显示在画布上,字符的水平间距和位置都按一定波动范围随机生成 
  $strx = rand(3, 8); 
  for ($i = 0; $i < $num; $i++) { 
    $strpos = rand(1, 6); 
    imagestring($im, 5, $strx, $strpos, substr($code, $i, 1), $black); 
    $strx += rand(8, 12); 
  } 
  imagepng($im);//输出图片 
  imagedestroy($im);//释放图片所占内存 
}

以上所述就是本文的全部内容了,希望大家能够喜欢。

PHP 相关文章推荐
利用PHP实现与ASP Banner组件相似的类
Oct 09 PHP
PHP执行速率优化技巧小结
Mar 15 PHP
php简单静态页生成过程
Mar 27 PHP
php 什么是PEAR?(第二篇)
Mar 19 PHP
深入解析PHP垃圾回收机制对内存泄露的处理
Jun 14 PHP
php中的filesystem文件系统函数介绍及使用示例
Feb 13 PHP
PHP循环遍历数组的3种方法list()、each()和while总结
Nov 19 PHP
php验证码生成代码
Nov 11 PHP
PHP实现根据时间戳获取周几的方法
Feb 26 PHP
PHP框架性能测试报告
May 08 PHP
PHP递归的三种常用方式
Feb 28 PHP
php给数组赋值的实例方法
Sep 26 PHP
php替换字符串中间字符为省略号的方法
May 04 #PHP
php中JSON的使用方法
Apr 30 #PHP
PHP使用CURL实现多线程抓取网页
Apr 30 #PHP
PHP遍历数组的方法汇总
Apr 30 #PHP
php实现根据IP地址获取其所在省市的方法
Apr 30 #PHP
PHP实现根据银行卡号判断银行
Apr 29 #PHP
php简单实现屏蔽指定ip段用户的访问
Apr 29 #PHP
You might like
php正则
2006/07/07 PHP
oracle资料库函式库
2006/10/09 PHP
PHP5与MySQL数据库操作常用代码 收集
2010/03/21 PHP
php模拟post提交数据的方法
2015/02/12 PHP
PHP中使用socket方式GET、POST数据实例
2015/04/02 PHP
微信封装的调用微信签名包的类库
2017/06/08 PHP
php下载远程大文件(获取远程文件大小)的实例
2017/06/17 PHP
PHP的PDO大对象(LOBs)
2019/01/27 PHP
给网站上的广告“加速”显示的方法
2007/04/08 Javascript
JavaScript 字符串乘法
2009/08/20 Javascript
js下通过getList函数实现分页效果的代码
2010/09/17 Javascript
基本jquery的控制tabs打开的数量的代码
2010/10/17 Javascript
Jquery异步请求数据实例代码
2011/12/28 Javascript
D3.js 从P元素的创建开始(显示可加载数据)
2014/10/30 Javascript
jquery实现可横向和竖向展开的动态下滑菜单效果
2015/08/24 Javascript
JavaScript数组方法大全(推荐)
2016/07/05 Javascript
AngularJS中watch监听用法分析
2016/11/04 Javascript
Angular中$broadcast和$emit的使用方法详解
2017/05/22 Javascript
使用mint-ui开发项目的一些心得(分享)
2017/09/07 Javascript
Angular4 ElementRef的应用
2018/02/26 Javascript
JavaScript 对引擎、运行时、调用堆栈的概述理解
2018/10/22 Javascript
原生js+canvas实现下雪效果
2020/08/02 Javascript
web.py中调用文件夹内模板的方法
2014/08/26 Python
python文件的md5加密方法
2016/04/06 Python
python+splinter实现12306网站刷票并自动购票流程
2018/09/25 Python
老生常谈python中的重载
2018/11/11 Python
用pycharm开发django项目示例代码
2019/06/13 Python
Django Python 获取请求头信息Content-Range的方法
2019/08/06 Python
python提取照片坐标信息的实例代码
2019/08/14 Python
Python3简单爬虫抓取网页图片代码实例
2019/08/26 Python
python 多线程死锁问题的解决方案
2020/08/25 Python
世界上最好的威士忌和烈性酒购买网站:The Whisky Exchange
2016/11/20 全球购物
中东最大的在线宠物店:Dubai Pet Food
2020/06/11 全球购物
音乐教学随笔感言
2014/02/19 职场文书
高中军训第一天感言
2014/03/06 职场文书
2014年语文教学工作总结
2014/12/17 职场文书