php生成验证码函数


Posted in PHP onOctober 20, 2015

php生成验证码的函数,实用靠谱。先上下生成的验证码的效果图(这里生成的是全数字的验证码的示例效果):

php生成验证码函数

下面是php生成验证码的源码:

<?php 
session_start(); 
//session_register('CheckCode'); 
//PHP4.2以上版本不需要用session_register()注册SESSION变量 
$type='gif'; 
$width= 45; 
$height= 20; 
header("Content-type: image/".$type); 
srand((double)microtime()*1000000); 
if(isset($_GET['action'])){ 
 $randval=randStr(4,$_GET['action']);  
}else{ 
 $randval=randStr(4,''); 
} 
if($type!='gif'&&function_exists('imagecreatetruecolor')){ 
 $im=@imagecreatetruecolor($width,$height); 
}else{ 
 $im=@imagecreate($width,$height); 
} 
$r=Array(225,211,255,223); 
$g=Array(225,236,237,215); 
$b=Array(225,236,166,125); 
$key=rand(0,3); 
$backColor=ImageColorAllocate($im,$r[$key],$g[$key],$b[$key]);//背景色(随机) 
$borderColor=ImageColorAllocate($im,127,157,185);//边框色 
$pointColor=ImageColorAllocate($im,255,170,255);//点颜色 
@imagefilledrectangle($im,0,0,$width - 1,$height - 1,$backColor);//背景位置 
@imagerectangle($im,0,0,$width-1,$height-1,$borderColor); //边框位置 
$stringColor=ImageColorAllocate($im,255,51,153); 
for($i=0;$i<=100;$i++){ 
 $pointX=rand(2,$width-2); 
 $pointY=rand(2,$height-2); 
 @imagesetpixel($im,$pointX,$pointY,$pointColor); 
} 
@imagestring($im,5,5,1,$randval,$stringColor); 
$ImageFun='Image'.$type; 
$ImageFun($im); 
@imagedestroy($im); 
$_SESSION['CheckCode']=$randval; 
function randStr($len=6,$format='ALL'){ 
 switch($format){ 
  case 'ALL'://生成包含数字和字母的验证码 
   $chars='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; break; 
  case 'CHAR'://仅生成包含字母的验证码 
   $chars='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'; break; 
  case 'NUMBER'://仅生成包含数字的验证码 
   $chars='0123456789'; break; 
  default : 
   $chars='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; break; 
 } 
 $string=''; 
 while(strlen($string)<$len) 
 $string.=substr($chars,(mt_rand()%strlen($chars)),1); 
 return $string; 
}

 该函数的具体使用方法请看如下这个示例(这里是生成全数字的验证码):

<img src="checkCode.php?action=NUMBER" width="45" height="20" />

以上就是php如何生成验证码的实现函数,希望对大家的学习有所帮助。

PHP 相关文章推荐
PHP脚本的10个技巧(5)
Oct 09 PHP
php的access操作类
Apr 09 PHP
PHP导入Excel到MySQL的方法
Apr 23 PHP
php入门学习知识点三 PHP上传
Jul 14 PHP
php函数间的参数传递(值传递/引用传递)
Sep 23 PHP
php实现mysql数据库操作类分享
Feb 14 PHP
配置php.ini实现PHP文件上传功能
Nov 27 PHP
php结合安卓客户端实现查询交互实例
May 05 PHP
初识PHP中的Swoole
Apr 05 PHP
php 时间time与日期date之间的使用详解及区别
Nov 07 PHP
php依赖注入知识点详解
Sep 23 PHP
laravel框架模型、视图与控制器简单操作示例
Oct 10 PHP
php文件上传你必须知道的几点
Oct 20 #PHP
PHP判断上传文件类型的解决办法
Oct 20 #PHP
php上传大文件失败的原因及应对策略
Oct 20 #PHP
PHP中如何使用session实现保存用户登录信息
Oct 20 #PHP
PHP+jQuery翻板抽奖功能实现
Oct 19 #PHP
php生成动态验证码gif图片
Oct 19 #PHP
php批量删除超链接的实现方法
Oct 19 #PHP
You might like
php zip文件解压类代码
2009/12/02 PHP
腾讯QQ微博API接口获取微博内容
2013/10/30 PHP
PHP配置把错误日志以邮件方式发送方法(Windows系统)
2015/06/23 PHP
WordPress网站性能优化指南
2015/11/18 PHP
PHP中Restful api 错误提示返回值实现思路
2016/04/12 PHP
mysql查找删除重复数据并只保留一条实例详解
2016/09/24 PHP
PHP简单遍历对象示例
2016/09/28 PHP
php获取访问者浏览页面的浏览器类型
2017/01/23 PHP
jQuery学习笔记之jQuery选择器的使用
2010/12/22 Javascript
Extjs TimeField 显示正常时间格式的代码
2011/06/28 Javascript
jquery动态添加删除div 具体实现
2013/07/20 Javascript
jsonp原理及使用
2013/10/28 Javascript
微信开发 js实现tabs选项卡效果
2016/10/28 Javascript
vue.js 使用v-if v-else发现没有执行解决办法
2017/05/15 Javascript
JS设计模式之惰性模式(二)
2017/09/29 Javascript
react-native组件中NavigatorIOS和ListView结合使用的方法
2017/09/30 Javascript
VUE引入第三方js包及调用方法讲解
2019/03/01 Javascript
微信小程序实现单列下拉菜单效果
2019/04/25 Javascript
Vue项目开发常见问题和解决方案总结
2020/09/11 Javascript
Django模板变量如何传递给外部js调用的方法小结
2017/07/24 Python
关于python多重赋值的小问题
2019/04/17 Python
python中的colorlog库使用详解
2019/07/05 Python
Django自带的加密算法及加密模块详解
2019/12/03 Python
linux 下selenium chrome使用详解
2020/04/02 Python
Jupyter Notebook远程登录及密码设置操作
2020/04/10 Python
python实现数字炸弹游戏程序
2020/07/17 Python
python搜索算法原理及实例讲解
2020/11/18 Python
Java如何调用外部Exe程序
2015/07/04 面试题
毕业生物理教师求职信
2013/10/17 职场文书
最新的互联网创业计划书
2014/01/10 职场文书
2014年两会学习心得体会
2014/03/10 职场文书
学校党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
社区敬老月活动总结
2015/05/07 职场文书
2016年社会主义核心价值观心得体会
2016/01/21 职场文书
Mysql基础知识点汇总
2021/05/26 MySQL
win11无法登录onedrive错误代码0x8004def7怎么办 ?
2022/04/05 数码科技