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 相关文章推荐
PHP中的超全局变量
Oct 09 PHP
PHP学习笔记 (1) 环境配置与代码调试
Jun 19 PHP
更改localhost为其他名字的方法
Feb 10 PHP
百度地图API应用之获取用户的具体位置
Jun 10 PHP
ThinkPHP公共配置文件与各自项目中配置文件组合的方法
Nov 24 PHP
PHP中Session可能会引起并发问题
Jun 26 PHP
php连接oracle数据库的方法(测试成功)
May 26 PHP
PHP版单点登陆实现方案的实例
Nov 17 PHP
深入研究PHP中的preg_replace和代码执行
Aug 15 PHP
PHP两个n位的二进制整数相加问题的解决
Aug 26 PHP
php多进程并发编程防止出现僵尸进程的方法分析
Feb 28 PHP
PHP数组与字符串互相转换实例
May 05 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制作静态网站的模板框架(四)
2006/10/09 PHP
让你同时上传 1000 个文件 (二)
2006/10/09 PHP
php+dojo 的数据库保存拖动布局的一个方法dojo 这里下载
2007/03/07 PHP
event.currentTarget与event.target的区别介绍
2012/12/31 Javascript
js页面跳转的常用方法整理
2013/10/18 Javascript
js身份证判断方法支持15位和18位
2014/03/18 Javascript
JavaScript编程中容易出BUG的几点小知识
2015/01/31 Javascript
探讨JavaScript中的Rest参数和参数默认值
2015/07/29 Javascript
纯js代码实现简单计算器
2015/12/02 Javascript
JS 验证密码 不能为空,必须含有数字、字母、特殊字符,长度在8-12位
2017/06/21 Javascript
微信小程序云开发之使用云存储
2019/05/17 Javascript
JavaScript使用面向对象实现的拖拽功能详解
2019/06/12 Javascript
微信小程序swiper组件实现抖音翻页切换视频功能的实例代码
2020/06/24 Javascript
在antd中setFieldsValue和defaultVal的用法
2020/10/29 Javascript
如何在JavaScript中等分数组的实现
2020/12/13 Javascript
python基础教程之数字处理(math)模块详解
2014/03/25 Python
python单例模式实例分析
2015/04/08 Python
python创建进程fork用法
2015/06/04 Python
详解使用Python处理文件目录的相关方法
2015/10/16 Python
详解Python 定时框架 Apscheduler原理及安装过程
2019/06/14 Python
解决.ui文件生成的.py文件运行不出现界面的方法
2019/06/19 Python
python在新的图片窗口显示图片(图像)的方法
2019/07/11 Python
Pytorch损失函数nn.NLLLoss2d()用法说明
2020/07/07 Python
Python 解析简单的XML数据
2020/07/24 Python
python从Oracle读取数据生成图表
2020/10/14 Python
详解Django关于StreamingHttpResponse与FileResponse文件下载的最优方法
2021/01/07 Python
html5 canvas-2.用canvas制作一个猜字母的小游戏
2013/01/07 HTML / CSS
Hudson Jeans官网:高级精制牛仔裤
2018/11/28 全球购物
业务总经理岗位职责
2014/02/03 职场文书
竞聘上岗演讲
2014/05/19 职场文书
党的群众路线教育实践活动个人批评与自我批评
2014/10/16 职场文书
学校运动会简讯
2015/07/20 职场文书
2015国庆节66周年标语
2015/07/30 职场文书
导游词之南昌滕王阁
2019/11/29 职场文书
vue使用节流函数的踩坑实例指南
2021/05/20 Vue.js
css中有哪些方式可以隐藏页面元素及区别
2022/06/16 HTML / CSS