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编程过程中需要了解的this,self,parent的区别
Dec 30 PHP
ThinkPHP采用模块和操作分析
Apr 18 PHP
php使用百度翻译api示例分享
Jan 31 PHP
Yii不依赖Model的表单生成器用法实例
Dec 04 PHP
PHP Yii框架之表单验证规则大全
Nov 16 PHP
Yii2中OAuth扩展及QQ互联登录实现方法
May 16 PHP
PHP中常用的数组操作方法笔记整理
May 16 PHP
PHP实现执行外部程序的方法详解
Aug 17 PHP
laravel实现分页样式替换示例代码(增加首、尾页)
Sep 22 PHP
PHP实现基于栈的后缀表达式求值功能
Nov 10 PHP
CodeIgniter框架实现的整合Smarty引擎DEMO示例
Mar 28 PHP
Laravel如何创建服务器提供者实例代码
Apr 15 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
xss防御之php利用httponly防xss攻击
2014/03/21 PHP
Laravel执行migrate命令提示:No such file or directory的解决方法
2016/03/16 PHP
Laravel框架路由和控制器的绑定操作方法
2018/06/12 PHP
php-fpm.conf配置文件中文说明详解及重要参数说明
2018/10/10 PHP
PHP的PDO预处理语句与存储过程
2019/01/27 PHP
jquery多行滚动/向左或向上滚动/响应鼠标实现思路及代码
2013/01/23 Javascript
javascript 终止函数执行操作
2014/02/14 Javascript
使用jQuery实现星级评分代码分享
2014/12/09 Javascript
jQuery创建DOM元素实例解析
2015/01/19 Javascript
JS+CSS实现可拖拽的漂亮圆角特效弹出层完整实例
2015/02/13 Javascript
javascript数组排序汇总
2015/07/07 Javascript
javascript先序遍历DOM树的方法
2016/02/27 Javascript
老生常谈js-react组件生命周期
2017/05/02 Javascript
jQuery插件开发发送短信倒计时功能代码
2017/05/09 jQuery
Vue中qs插件的使用详解
2020/02/07 Javascript
[01:45]2014DOTA2 TI预选赛预选赛 大神专访第二弹!
2014/05/20 DOTA
[01:43]深扒TI7聊天轮盘语音出处4
2017/05/11 DOTA
[01:18:36]LGD vs VP Supermajor 败者组决赛 BO3 第一场 6.10
2018/07/04 DOTA
python执行shell获取硬件参数写入mysql的方法
2014/12/29 Python
基于Django与ajax之间的json传输方法
2018/05/29 Python
使用Python获取并处理IP的类型及格式方法
2018/11/01 Python
python json.loads兼容单引号数据的方法
2018/12/19 Python
pyqt5 comboBox获得下标、文本和事件选中函数的方法
2019/06/14 Python
Python 一键获取百度网盘提取码的方法
2019/08/01 Python
从训练好的tensorflow模型中打印训练变量实例
2020/01/20 Python
安纳塔拉酒店度假村及水疗官方网站:Anantara Hotel
2016/08/25 全球购物
全球最大的网上自行车商店:Chain Reaction Cycles
2016/12/02 全球购物
世界领先的高品质定制产品平台:Zazzle
2017/07/23 全球购物
美国滑雪和滑雪板商店:Buckman
2018/03/03 全球购物
法务专员岗位职责
2014/01/02 职场文书
2014年党员公开承诺践诺书
2014/03/25 职场文书
文明礼貌演讲稿
2014/05/12 职场文书
业务员工作态度散漫检讨书
2014/11/02 职场文书
励志语录:只有自己足够强大,才能不被别人践踏
2020/01/09 职场文书
详细谈谈JavaScript中循环之间的差异
2021/08/23 Javascript
Python os和os.path模块详情
2022/04/02 Python