支持中文、字母、数字的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
Dec 14 PHP
php 常用字符串函数总结
Mar 15 PHP
PHP5 面向对象(学习记录)
Dec 02 PHP
PHP操作mysql函数详解,mysql和php交互函数
May 19 PHP
PHP文章采集URL补全函数(FormatUrl)
Aug 02 PHP
解析php中const与define的应用区别
Jun 18 PHP
php将字符串全部转换成大写或者小写的方法
Mar 17 PHP
学习php设计模式 php实现命令模式(command)
Dec 08 PHP
Yii2针对指定url的生成及图片等的引入方法小结
Jul 18 PHP
php组合排序简单实现方法
Oct 15 PHP
php实现数组中出现次数超过一半的数字的统计方法
Oct 14 PHP
tp5(thinkPHP5框架)captcha验证码配置及验证操作示例
May 28 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中功能强大却很少使用的函数实例小结
2016/11/10 PHP
PHP十六进制颜色随机生成器功能示例
2017/07/24 PHP
详解php用static方法的原因
2018/09/12 PHP
Javascript 键盘keyCode键码值表
2009/12/24 Javascript
(jQuery,mootools,dojo)使用适合自己的编程别名命名
2010/09/14 Javascript
用jQuery中的ajax分页实现代码
2011/09/20 Javascript
用JQuery在网页中实现分隔条功能的代码
2012/08/09 Javascript
eclipse如何忽略js文件报错(附图)
2013/10/30 Javascript
window.location不跳转的问题解决方法
2014/04/17 Javascript
HTML5实现留言和回复页面样式
2015/07/22 Javascript
JS右下角广告窗口代码(可收缩、展开及关闭)
2015/09/04 Javascript
jQuery实现带玻璃流光质感的手风琴特效
2015/11/20 Javascript
javascript实现平滑无缝滚动
2020/08/09 Javascript
JavaScript的React Web库的理念剖析及基础上手指南
2016/05/10 Javascript
基于MVC+EasyUI的web开发框架之使用云打印控件C-Lodop打印页面或套打报关运单信息
2016/08/29 Javascript
jQuery视差滚动效果网页实现方法经验总结
2016/09/29 Javascript
Javascript中数组去重与拍平的方法示例
2017/02/03 Javascript
vue的安装及element组件的安装方法
2018/03/09 Javascript
微信小程序实现商城倒计时
2020/11/01 Javascript
javascript 构建模块化开发过程解析
2019/09/11 Javascript
JavaScript内置对象之Array的使用小结
2020/05/12 Javascript
深入理解Python中变量赋值的问题
2017/01/12 Python
Python基础教程之内置函数locals()和globals()用法分析
2018/03/16 Python
基于wxPython的GUI实现输入对话框(2)
2019/02/27 Python
浅谈python的深浅拷贝以及fromkeys的用法
2019/03/08 Python
详解Django项目中模板标签及模板的继承与引用(网站中快速布置广告)
2019/03/27 Python
Python秒算24点实现及原理详解
2019/07/29 Python
python针对Oracle常见查询操作实例分析
2020/04/30 Python
对Python 字典元素进行删除的方法
2020/07/31 Python
CSS3 calc()会计算属性详解
2018/02/27 HTML / CSS
For Art’s Sake官网:手工制作的奢华眼镜
2018/12/15 全球购物
大型演出策划方案
2014/05/28 职场文书
2015年度党风廉政建设工作情况汇报
2015/01/02 职场文书
药房管理制度范本
2015/08/06 职场文书
校园广播稿范文
2015/08/19 职场文书
Win11 Build 22000.51版本文件资源管理器“命令栏”和上下文菜单有什么新变化?
2021/11/21 数码科技