支持中文、字母、数字的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 相关文章推荐
ThinkPHP实现跨模块调用操作方法概述
Jun 20 PHP
PHP操作文件的一些基本函数使用示例
Nov 18 PHP
thinkphp四种url访问方式详解
Nov 28 PHP
php使用pdo连接报错Connection failed SQLSTATE的解决方法
Dec 15 PHP
php截取中文字符串函数实例
Feb 23 PHP
PHP判断是否为空的几个函数对比
Apr 21 PHP
PHP的PDO操作简单示例
Mar 30 PHP
PHP实现的XML操作类【XML Library】
Dec 29 PHP
Thinkphp5 微信公众号token验证不成功的原因及解决方法
Nov 12 PHP
实例解析php的数据类型
Oct 24 PHP
Laravel获取所有的数据库表及结构的方法
Oct 10 PHP
PHP框架实现WebSocket在线聊天通讯系统
Nov 21 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简单系统查询模块代码打包下载
2008/06/07 PHP
php遍历文件夹下的所有文件和子文件夹示例
2014/03/20 PHP
javascript some()函数用法详解
2014/11/13 PHP
PHP实现驼峰样式字符串(首字母大写)转换成下划线样式字符串的方法示例
2017/08/10 PHP
js 优化次数过多的循环 考虑到性能问题
2011/03/05 Javascript
js获取时间(本周、本季度、本月..)
2013/11/22 Javascript
javascript怎么禁用浏览器后退按钮
2014/03/27 Javascript
JS实现距离上次刷新已过多少秒示例
2014/05/23 Javascript
javascript实现textarea中tab键的缩排处理方法
2015/06/26 Javascript
Jquery全选与反选点击执行一次的解决方案
2015/08/14 Javascript
Easyui使用Dialog行内按钮布局的实例
2017/07/27 Javascript
浅谈Angular4中常用管道
2017/09/27 Javascript
vue滚动固定顶部及修改样式的实例代码
2019/05/30 Javascript
python简单分割文件的方法
2015/07/30 Python
Python闭包的两个注意事项(推荐)
2017/03/20 Python
[原创]windows下Anaconda的安装与配置正解(Anaconda入门教程)
2018/04/05 Python
Python比较2个时间大小的实现方法
2018/04/10 Python
Python实现截取PDF文件中的几页代码实例
2019/03/11 Python
Python3.0中普通方法、类方法和静态方法的比较
2019/05/03 Python
Django 响应数据response的返回源码详解
2019/08/06 Python
django创建简单的页面响应实例教程
2019/09/06 Python
Python中xml和dict格式转换的示例代码
2019/11/07 Python
Django中的AutoField字段使用
2020/05/18 Python
django inspectdb 操作已有数据库数据的使用步骤
2021/02/07 Python
Under Armour美国官网:美国知名高端功能性运动品牌
2016/09/05 全球购物
瑜伽服装品牌:露露柠檬(lululemon athletica)
2017/06/04 全球购物
zooplus波兰:在线宠物店
2019/07/21 全球购物
英国领先的在线高尔夫商店:Scottsdale Golf
2019/08/26 全球购物
syb养殖创业计划书
2014/01/09 职场文书
运动会方阵口号
2014/06/07 职场文书
领导班子四风对照检查材料范文
2014/09/27 职场文书
英文辞职信范文
2015/05/13 职场文书
《坐井观天》教学反思
2016/02/18 职场文书
普希金诗歌赏析(6首)
2019/08/22 职场文书
创业计划书之网吧
2019/10/10 职场文书
你有一份《诚信考试承诺书》待领取
2019/11/13 职场文书