php中文字母数字验证码实现代码


Posted in PHP onApril 25, 2008

英文同数字
<?php
Header("Content-type:image/png");
//定义header,声明图片文件,最好是png,无版权之扰; 
//生成新的四位整数验证码
session_start();//开启session;
$authnum_session = ''; 
$str = 'abcdefghijkmnpqrstuvwxyz1234567890'; 
//定义用来显示在图片上的数字和字母;
$l = strlen($str); //得到字串的长度; 
//循环随机抽取四位前面定义的字母和数字; 
for($i=1;$i<=4;$i++)

$num=rand(0,$l-1); 
//每次随机抽取一位数字;从第一个字到该字串最大长度,
//减1是因为截取字符是从0开始起算;这样34字符任意都有可能排在其中;
$authnum_session.= $str[$num]; 
//将通过数字得来的字符连起来一共是四位;
}
session_register("authnum_session");
//用session来做验证也不错;注册session,名称为authnum_session,
//其它页面只要包含了该图片
//即可以通过$_SESSION["authnum_session"]来调用

//生成验证码图片,
srand((double)microtime()*1000000);
$im = imagecreate(50,20);//图片宽与高; 
//主要用到黑白灰三种色;
$black = ImageColorAllocate($im, 0,0,0);
$white = ImageColorAllocate($im, 255,255,255);
$gray = ImageColorAllocate($im, 200,200,200); 
//将四位整数验证码绘入图片
imagefill($im,68,30,$gray);
//如不用干扰线,注释就行了;
$li = ImageColorAllocate($im, 220,220,220);
for($i=0;$i<3;$i++) 
{//加入3条干扰线;也可以不要;视情况而定,因为可能影响用户输入; 
imageline($im,rand(0,30),rand(0,21),rand(20,40),rand(0,21),$li);

//字符在图片的位置;
imagestring($im, 5, 8, 2, $authnum_session, $white);
for($i=0;$i<90;$i++)
{//加入干扰象素
imagesetpixel($im, rand()%70 , rand()%30 , $gray);
}
ImagePNG($im);
ImageDestroy($im);
?> 

中文

<?php    
/*    
* 文件:code.php    
* 作用:验证码生成    
*/    
session_start();
// 设置 content-type    
header("Content-type: image/png");    
// 创建图片    
$im = imagecreatetruecolor(120, 30);     
$ChineseChar = array("人","出","来","友","学","孝","仁","义","礼","廉","忠","国","中","易","白","者","火 ","土","金","木","雷","风","龙","虎","天","地",  
"生","晕","菜","鸟","田","三","百","钱","福 ","爱","情","兽","虫","鱼","九","网","新","度","哎","唉","啊","哦","仪","老","少","日",  
"月 ","星");    
// 创建颜色    
$fontcolor = imagecolorallocate($im, 255, 255, 255);    
$bg = imagecolorallocate($im, 0, 0, 0);    

// 设置文字    
for($i=0;$i<4;$i++) $text .= $ChineseChar[(array_rand($ChineseChar))];    

$_SESSION['code'] = $text;

// 设置字体  [url]http://www.font.com.cn/downlist/s_12_3.html[/url] 有_GBK系列的字体下载,一般GD库都支持的!
$font = 'gbk.ttf';

// 添加文字    
imagettftext($im, 18, 0, 11, 21, $fontcolor, $font, iconv("GB2312","UTF-8",$text));    

// 输出图片    
imagepng($im);    
imagedestroy($im);    
?>

PHP 相关文章推荐
一个简单的域名注册情况查询程序
Oct 09 PHP
PHP更新购物车数量(表单部分/PHP处理部分)
May 03 PHP
PHP include任意文件或URL介绍
Apr 29 PHP
ThinkPHP中url隐藏入口文件后接收alipay传值的方法
Dec 09 PHP
php批量删除超链接的实现方法
Oct 19 PHP
php注册登录系统简化版
Dec 28 PHP
php获取开始与结束日期之间所有日期的方法
Nov 29 PHP
php实现微信企业号支付个人的方法详解
Jul 26 PHP
ThinkPHP3.2框架自定义配置和加载用法示例
Jun 14 PHP
Laravel5.1框架注册中间件的三种场景详解
Jul 09 PHP
laravel Validator ajax返回错误信息的方法
Sep 29 PHP
Mac M1安装mnmp (Mac+Nginx+MySQL+PHP) 开发环境
Mar 29 PHP
Ajax PHP简单入门教程代码
Apr 25 #PHP
PHP开发框架总结收藏
Apr 24 #PHP
php5数字型字符串加解密代码
Apr 24 #PHP
php实现的简单压缩英文字符串的代码
Apr 24 #PHP
php格式化工具Beautify PHP小小BUG
Apr 24 #PHP
使用PHP的日期与时间函数技巧
Apr 24 #PHP
追求程序速度,而不是编程的速度
Apr 23 #PHP
You might like
用PHP实现图象锐化代码
2007/06/14 PHP
如何使用PHP实现javascript的escape和unescape函数
2013/06/29 PHP
PHP中单例模式的使用场景与使用方法讲解
2019/03/18 PHP
PHP 使用位运算实现四则运算的代码
2021/03/09 PHP
Ucren Virtual Desktop V2.0
2006/11/07 Javascript
JavaScript执行效率与性能提升方案
2012/12/21 Javascript
JavaScript String.replace函数参数实例说明
2013/06/06 Javascript
详解addEventListener的三个参数之useCapture
2015/03/16 Javascript
JavaScript的Backbone.js框架环境搭建及Hellow world示例
2016/05/07 Javascript
javaScript事件机制兼容【详细整理】
2016/07/23 Javascript
Angularjs在初始化未完毕时出现闪烁问题的解决方法分析
2016/08/05 Javascript
14 个折磨人的 JavaScript 面试题
2016/08/08 Javascript
JS简单实现查看文档创建日期、修改日期和文档大小的方法示例
2018/04/08 Javascript
VUE 实现滚动监听 导航栏置顶的方法
2018/09/11 Javascript
jquery+ajax实现上传图片并显示上传进度功能【附php后台接收】
2019/06/06 jQuery
JS实现滑动拼图验证功能完整示例
2020/03/29 Javascript
Vue3.0的优化总结
2020/10/16 Javascript
[01:10:24]DOTA2-DPC中国联赛 正赛 VG vs Aster BO3 第一场 2月28日
2021/03/11 DOTA
Python使用pip安装pySerial串口通讯模块
2018/04/20 Python
python numpy 一维数组转变为多维数组的实例
2018/07/02 Python
Python实现读取txt文件中的数据并绘制出图形操作示例
2019/02/26 Python
Python3.4解释器用法简单示例
2019/03/22 Python
python文件写入write()的操作
2019/05/14 Python
Python 使用 environs 库定义环境变量的方法
2020/02/25 Python
python GUI库图形界面开发之PyQt5信号与槽的高级使用技巧(自定义信号与槽)详解与实例
2020/03/06 Python
html5中监听canvas内部元素点击事件的三种方法
2019/04/28 HTML / CSS
美国在线旅行社:Crystal Travel
2018/09/11 全球购物
介绍一下MD5加密算法
2016/11/12 面试题
介绍一下Java中标识符的命名规则
2014/02/03 面试题
幼儿园大班家长评语
2014/04/17 职场文书
2015高中教师个人工作总结
2015/07/21 职场文书
教师理论学习心得体会
2016/01/21 职场文书
2016年法制宣传月活动总结
2016/04/01 职场文书
小学生一年级(书信作文)
2019/08/13 职场文书
Java Socket实现Redis客户端的详细说明
2021/05/26 Redis
Python初学者必备的文件读写指南
2021/06/23 Python