支持中文、字母、数字的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 相关文章推荐
实现“上一页”和“下一页按钮
Oct 09 PHP
用PHP写的MySQL数据库用户认证系统代码
Mar 22 PHP
php array_map()数组函数使用说明
Jul 12 PHP
PHP将整个网站生成HTML纯静态网页的方法总结
Feb 05 PHP
单点登录 Ucenter示例分析
Oct 29 PHP
使用php显示搜索引擎来的关键词
Feb 13 PHP
PHP中遇到BOM、编码导致json_decode函数无法解析问题
Jul 02 PHP
简单介绍PHP非阻塞模式
Mar 03 PHP
PHP错误处理函数
Apr 03 PHP
php安装php_rar扩展实现rar文件读取和解压的方法
Nov 17 PHP
PHP explode()函数用法讲解
Feb 15 PHP
php实现QQ小程序发送模板消息功能
Sep 18 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
用文本文件实现的动态实时发布新闻的程序
2006/10/09 PHP
PHP一些常用的正则表达式字符的一些转换
2008/07/29 PHP
CI框架中site_url()和base_url()的区别
2015/01/07 PHP
php防止sql注入简单分析
2015/03/18 PHP
php-fpm开启状态统计的方法详解
2017/06/23 PHP
PHP7扩展开发之hello word实现方法详解
2018/01/15 PHP
PHP中define() 与 const定义常量的区别详解
2019/06/25 PHP
javascript学习网址备忘
2007/05/29 Javascript
JS实现单击输入框弹出选择框效果完整实例
2015/12/14 Javascript
javascript中错误使用var造成undefined
2016/03/31 Javascript
使用PBFunc在Powerbuilder中支付宝当面付款功能
2016/10/01 Javascript
JS批量替换内容中关键词为超链接
2017/02/20 Javascript
Vue框架之goods组件开发详解
2018/01/25 Javascript
判断iOS、Android以及PC端的示例代码
2018/11/15 Javascript
Vue+axios+WebApi+NPOI导出Excel文件实例方法
2019/06/05 Javascript
简单了解vue中父子组件如何相互传递值(基础向)
2019/07/12 Javascript
python检测服务器是否正常
2014/02/16 Python
利用python如何处理百万条数据(适用java新手)
2018/06/06 Python
详解python3中zipfile模块用法
2018/06/18 Python
Python人脸识别第三方库face_recognition接口说明文档
2019/05/03 Python
python celery分布式任务队列的使用详解
2019/07/08 Python
Python 私有化操作实例分析
2019/11/21 Python
Pandas时间序列:重采样及频率转换方式
2019/12/26 Python
pytorch中nn.Conv1d的用法详解
2019/12/31 Python
python re模块匹配贪婪和非贪婪模式详解
2020/02/11 Python
Python可变对象与不可变对象原理解析
2020/02/25 Python
Django之腾讯云短信的实现
2020/06/12 Python
python 实现学生信息管理系统的示例
2020/11/28 Python
美国经典刺绣和字母儿童服装特卖:Smocked Auctions
2018/07/16 全球购物
巴西独家产品和现场演示购物网站:Shoptime
2019/07/11 全球购物
团员的自我评价
2013/12/01 职场文书
保洁公司服务承诺书
2014/05/28 职场文书
大学生工作自荐书
2014/06/16 职场文书
教师党员自我评价范文
2015/03/04 职场文书
基于JavaScript实现年月日三级联动
2021/06/22 Javascript
nginx代理实现静态资源访问的示例代码
2022/07/07 Servers