php实现可运算的验证码
本文分享了php实现可运算的验证码的代码实例,希望对大家的学习有所帮助。
demo.php代码
<?php
session_start();
if(!emptyempty($_POST['Login'])){
if(md5(strtoupper($_POST['Login']))==$_SESSION['Login']){
echo'Correct';
}else{
echo'Error';
}
}
?>
<formmethod="post">
<inputtype="text"name="Login"value=""/><imgsrc="img.php?Action=Login&imgW=80&imgH=30"align="absmiddle">
<inputtype="submit"value="Login"/>
</form>
img.php代码
<?php
session_start();
/**
*随机的数字,之和验证码
*修改日期2006-12-20
*/
functiongetCode($length=32,$mode=0)
{
switch($mode)
{
case'1':
$str='123456789';
break;
case'2':
$str='abcdefghijklmnopqrstuvwxyz';
break;
case'3':
$str='ABCDEFGHIJKLMNOPQRSTUVWXYZ';
break;
case'4':
$str='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
break;
case'5':
$str='ABCDEFGHIJKLMNPQRSTUVWXYZ123456789';
break;
case'6':
$str='abcdefghijklmnopqrstuvwxyz1234567890';
break;
default:
$str='ABCDEFGHIJKLMNPQRSTUVWXYZabcdefghijkmnpqrstuvwxyz23456789';
break;
}
$result='';
$l=strlen($str)-1;
for($i=0;$i<$length;$i++)
{
$num=rand(0,$l);
$result.=$str[$num];
}
return$result;
}
//建立验证图片
functioncreateAuthNumImg($randStr,$imgW=100,$imgH=40,$fontName)
{
header("content-type:image/png");
$image=imagecreate($imgW,$imgH);
$color_white=imagecolorallocate($image,255,255,255);
$color_gray=imagecolorallocate($image,228,228,228);
$color_black=imagecolorallocate($image,255,102,204);
for($i=0;$i<1000;$i++)
{
imagesetpixel($image,mt_rand(0,$imgW),mt_rand(0,$imgH),$color_gray);
}
imagerectangle($image,0,0,$imgW-1,$imgH-1,$color_gray);
for($i=10;$i<$imgH;$i+=10)
imageline($image,0,$i,$imgW,$i,$color_gray);
imagettftext($image,16,5,3,25,$color_black,$fontName,$randStr);
for($i=10;$i<$imgW;$i+=10)
imageline($image,$i,0,$i,$imgH,$color_gray);
imagepng($image);
imagedestroy($image);
}
$a=GetCode(1,1);
$b=GetCode(1,1);
$c=GetCode(1,1);
$Passport=$a."+".$b."+".$c;
$Total=$a+$b+$c;
$Total;
$_SESSION[$_GET['Action']]=md5(strtoupper($Total));
createAuthNumImg($Passport,$_GET['imgW'],$_GET['imgH'],"verdana.ttf");
?>
以上就是为大家介绍的php可运算的验证码全部代码,希望对大家的学习有所帮助。