php生成验证码函数
php生成验证码的函数,实用靠谱。先上下生成的验证码的效果图(这里生成的是全数字的验证码的示例效果):http://www.daimajiayuan.com/uploads/allimg/140312/0ZR164A-0.jpg下面是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;
[*]}
该函数的具体使用方法请看如下这个示例(这里是生成全数字的验证码);
[*]<imgsrc="checkCode.php?action=NUMBER"width="45"height="20"/>
页:
[1]