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;
[*]}
该函数的具体使用方法请看如下这个示例(这里是生成全数字的验证码): 更多PHP教程,请访问代码家园;
[*]<img src="checkCode.php?action=NUMBER" width="45" height="20" />
本文原地址:http://www.daimajiayuan.com/sitejs-16919-1.htm
页:
[1]