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 Socket 编程
Apr 09 PHP
兼容性比较好的PHP生成缩略图的代码
Jan 12 PHP
php的memcached客户端memcached
Jun 14 PHP
PHP运行出现Notice : Use of undefined constant 的完美解决方案分享
Mar 05 PHP
基于PHP异步执行的常用方式详解
Jun 03 PHP
PHP生成二维码的两个方法和实例
Jul 01 PHP
PHP 抽象方法与抽象类abstract关键字介绍及应用
Oct 16 PHP
PHP 魔术变量和魔术函数详解
Feb 25 PHP
PHP实现批量生成App各种尺寸Logo
Mar 19 PHP
Linux操作系统安装LAMP环境
Jun 26 PHP
WordPress中设置Post Type自定义文章类型的实例教程
May 10 PHP
PHP 序列化和反序列化函数实例详解
Jul 18 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
laravel 5 实现模板主题功能(续)
2015/03/02 PHP
Zend Framework实现多服务器共享SESSION数据的方法
2016/03/22 PHP
PHP中for循环与foreach的区别
2017/03/06 PHP
JavaScript中Math对象使用说明
2008/01/16 Javascript
Webkit的跨域安全问题说明
2011/09/13 Javascript
几种延迟加载JS代码的方法加快网页的访问速度
2013/10/12 Javascript
加随机数引入脚本不让浏览器读取缓存
2014/09/04 Javascript
JS实现黑色大气的二级导航菜单效果
2015/09/18 Javascript
js实现图片轮播效果
2015/12/19 Javascript
Bootstrap框架下下拉框select搜索功能
2020/03/26 Javascript
JavaScript正则获取地址栏中参数的方法
2017/03/02 Javascript
详解Node.js开发中的express-session
2017/05/19 Javascript
Angular 4依赖注入学习教程之ClassProvider的使用(三)
2017/06/04 Javascript
JS失效 提示HTML1114: (UNICODE 字节顺序标记)的代码页 utf-8 覆盖(META 标记)的冲突的代码页 utf-8
2017/06/23 Javascript
JS+HTML实现的圆形可点击区域示例【3种方法】
2018/08/01 Javascript
Nuxt配合Node在实际生产中的应用详解
2018/08/07 Javascript
AngularJS实现与后台服务器进行交互的示例讲解
2018/08/13 Javascript
解决Vue-cli npm run build生产环境打包,本地不能打开的问题
2018/09/20 Javascript
socket io与vue-cli的结合使用的示例代码
2018/11/01 Javascript
React事件处理的机制及原理
2018/12/03 Javascript
利用es6 new.target来对模拟抽象类的方法
2019/05/10 Javascript
基于redis的小程序登录实现方法流程分析
2020/05/25 Javascript
python 读写中文json的实例详解
2017/10/29 Python
python实现Floyd算法
2018/01/03 Python
Python3.4实现远程控制电脑开关机
2018/02/22 Python
python实现简单登陆流程的方法
2018/04/22 Python
学习python分支结构
2019/05/17 Python
python实现通过队列完成进程间的多任务功能示例
2019/10/28 Python
Windows下python3安装tkinter的问题及解决方法
2020/01/06 Python
FC-Moto英国:欧洲最大的摩托车服装和头盔商店之一
2019/08/25 全球购物
小学教师岗位职责
2013/11/25 职场文书
网吧收银员岗位职责
2013/12/14 职场文书
大学生赌博检讨书
2014/09/22 职场文书
2015年大学宣传部工作总结
2015/05/26 职场文书
员工担保书范本
2015/09/22 职场文书
SpringBoot连接MySQL获取数据写后端接口的操作方法
2021/11/02 MySQL