欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

php 验证码功能 下面的代码是完全ok 有大用

shiping1 的头像

<?PHP
//这是史平忠找来的验证码
session_start();
//session_register('SafeCode');
$type = 'gif';
$width= 50;
$height= 20;
header("Content-type: image/".$type);
srand((double)microtime()*1000000);
$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]);//背景色(随机)
     //$backColor=   ImageColorAllocate($im,100,100,100);//设置背景颜色
     $borderColor = ImageColorAllocate($im, 0, 0, 0);//边框色
     $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, 6, 5, 1, $randval, $stringColor);
     $ImageFun='Image'.$type;
     $ImageFun($im);
     @ImageDestroy($im);
     $randval = strtolower($randval);
     $_SESSION['check_code'] = $randval;
     //setcookie($randval,$randval);
     
//产生随机字符串
function randStr($len=6,$format='ALL') {
           switch($format) {
                 case 'ALL':
                 $chars='ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnpqrstuvwxyz23456789'; break;
                 case 'CHAR':
                 $chars='ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnpqrstuvwxyz'; break;
                 case 'NUMBER':
                 $chars='23456789'; break;
                 default :
                 $chars='ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnpqrstuvwxyz23456789';
                 break;
           }
     $string="";
     while(strlen($string)<$len)
     $string.=substr($chars,(mt_rand()%strlen($chars)),1);
     return $string;
}
?>

 

普通分类: