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

WBOY
Freigeben: 2016-07-13 17:10:09
Original
1076 Leute haben es durchsucht

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

 代码如下 复制代码

/*
 * 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 {
$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 imageline($im,rand(0,60),2,rand(0,60),20,$yellow);

}
for($j=0;$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]);

header("Content-type: image/jpeg");//输出图片
imagejpeg($im);
imagedestroy($im);
?>

调用方法

 代码如下 复制代码
/*
 * 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'];
 }
}
}
?>

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


 

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/629697.htmlTechArticle这里介绍了一款安全性比较高的验证生成程序,可以带干扰线等内容,可以有效的防止用户用程序识别验证码的难度了。 代码如下 复制代码...
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage