好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

php生成带干扰的验证码程序 - php函数

php生成带干扰的验证码程序

这里介绍了一款安全性比较高的验证生成程序,可以带干扰线等内容,可以有效的防止用户用程序识别验证码的难度了,代码如下:

<?php  /*    * Created on 2011-3-11    * Programmer : xiaoyao, QQ:1045195056    验证通过判断输入值与$_SESSION['check_pic']值    */   session_start();    function  RandAscii( $number ){ //$number产生数字和字母个数   $arr = array ( '0' , '1' , '2' , '3' , '4' , '5' , '6' , '7' , '8' , '9' ,  'a' , 'b' , 'c' , 'd' , 'e' , 'f' , 'g' , 'h' , 'i' , 'j' , 'k' , 'l' , 'm' , 'n' , 'o' , 'p' , 'q' , 'r' , 's' , 't' , 'w' , 'v' , 'u' , 'x' , 'y' , 'z' );  for  ( $i =1; $i <= $number ; $i ++)  {  $rand =  $rand . $arr [rand(0,35)];  }  return   $rand ;  }    $rand =RandAscii(4);    $_SESSION [ 'check_pic' ]= $rand ; //随机产生的四个数赋值session中,用于验证。   $x =80;  $y =24;    $im =imagecreatetruecolor( $x , $y ); //创建图片   $bg =imagecolorallocate( $im ,255,255,255); //设置颜色背景   imagefill(  $im ,0,0, $bg );  $wh =imagecolorallocate( $im ,255,255,0);  $grey =imagecolorallocate( $im ,128,128,128);  $yellow =imagecolorallocate( $im ,255,255,0);  $red =imagecolorallocate( $im ,0,255,0);  $foregroundArr  =  array (imagecolorallocate( $im , rand(0, 20), rand(0, 20), rand(0, 20)),    imagecolorallocate( $im , rand(0, 20), rand(0, 10), rand(245, 255)),    imagecolorallocate( $im , rand(245, 255), rand(0, 20), rand(0, 10)),    imagecolorallocate( $im , rand(245, 255), rand(0, 20), rand(245, 255))   ); //字颜色数组     //画边框     $border  = imagecolorallocate( $im , 133, 153, 193);   imagerectangle( $im , 0, 0,  $x  - 1,  $y  - 1,  $border );    for ( $i =0; $i <10; $i ++){         //画干扰线,10条   imageline( $im ,rand(0,60),2,rand(0,60),20, $yellow );    }  for ( $j =0; $j <100; $j ++){   imagesetpixel( $im ,rand()%76,rand()%20, $red );  }  //imagestring($im,6,15,8,$rand,$wh);//字体大小1-5   imagettftext( $im , 14,rand(30, -30), 5, rand(15, 18) , $foregroundArr [rand(0,3)],  'C:WindowsFontsArial.ttf' , $rand [0]);  imagettftext( $im , 14,rand(50, -50), 24, rand(15, 18), $foregroundArr [rand(0,3)],  'C:WindowsFontsArial.ttf' , $rand [1]);  imagettftext( $im , 14,rand(50, -50), 43, rand(15, 18) , $foregroundArr [rand(0,3)],  'C:WindowsFontsArial.ttf' , $rand [2]);  imagettftext( $im , 14,rand(30, -30), 62, rand(15, 18), $foregroundArr [rand(0,3)],  'C:WindowsFontsArial.ttf' , $rand [3]);  //开源代码phpfensi.com   header( "Content-type: image/jpeg" ); //输出图片   imagejpeg( $im );  imagedestroy( $im );  ?> 

调用方法,代码如下:

<?php  /*    * Created on 2011-3-11    * Programmer : xiaoyao, QQ:1045195056    验证通过判断输入值与$_SESSION['check_pic']值    */   session_start(); //开启session   if (isset( $_POST [ 'check' ]))  {  if ( $_POST [ 'check' ])   {  if ( $_POST [ 'check' ]== $_SESSION [ 'check_pic' ])   {    echo   " 验证码正确" . $_SESSION [ 'check_pic' ];   }  else    {    echo   " 验证码错误" . $_SESSION [ 'check_pic' ];   }  }  }  ?>  <FORM METHOD=POST ACTION= "" >  <img src= "index.php" ><br>    <!----链接图片--->  <input type= "text"  name= "check"  >  <input type= "submit"  value= "提交" >  </FORM> 

查看更多关于php生成带干扰的验证码程序 - php函数的详细内容...

  阅读:60次