不知道为什么,我的验证码,当什么都不输入时,点登录弹出输入正确,输入正确时弹出输入错误,可以麻烦再帮我看看吗?<?php//1、创建一个真空彩色图像 $image = imagecreatetruecolor(100,30); //2、为图像分配颜色 $bgcolor = imagecolorallocate($image,255,255,255); //3、填充图像 imagefill($image,0,0,$bgcolor); //4、在图像中添加随机数字 // 数字+字母验证码for ($i=0; $i < 4; $i++) { $fontsize = 8; // 0-120 为深色区,能更好的在浅色背景中识别验证码 $fontcolor = imagecolorallocate($image, rand(0,120), rand(0,120), rand(0,120)); // 制作字典 并去除容易混淆的字符(l 与 1, z 与 2,等等) $data = 'abcdefghijkmnqprstuvwxy3456789'; // 通过截取字符串内容方法,获得随机字符 $fontcontent = substr($data, rand(0,strlen($data)),1); $captcha_code = $fontcontent; // 生成的验证内容不重叠 $x = ($i*100/4) + rand(5,10); // 生成的验证内容不齐平 $y = rand(5,10); // 用 $fontcolor 颜色将字符串 $fontcontent 画到 $image 所代表的图像的 $x,$y 坐标处 imagestring($image, $fontsize, $x, $y, $fontcontent, $fontcolor);} //增加干扰元素$_SESSION['authcode'] = $captcha_code; for($i=0;$i<200;$i++){ $pointcolor = imagecolorallocate($image,rand(50,200),rand(50,200),rand(50,200)); imagesetpixel($image,rand(1,99),rand(1,99),rand(1,99)); } //增加线干扰 for($i=0;$i<3;$i++){ $linecolor = imagecolorallocate($image,rand(80,200),rand(80,200),rand(80,200)); imageline($image,rand(1,99),rand(1,29),rand(1,99),rand(1,29),$linecolor); } header('content-type:image/png'); imagepng($image); imagedestroy($image);zzmm.php<?phpheader('content-type:text/html;charset=utf-8');if(isset($_REQUEST['authcode'])){ session_start(); if(strtolower($_REQUEST['authcode']) == $_SESSION['authcode']){ echo '输入正确'; }else{ echo '输入错误'; } exit();}?><!DOCTYPE html><html> <head> <meta charset="utf-8"/> <title>验证码确认</title> </head> <body> <form method="post" action="zzmm.php"> <p>验证码图片:<img border = "1" src="zzm.php?r=<?php echo rand();?>"width:100px,height:100px" /></p> <p>请输入验证码内容:<input type="text" name="authcode" value="" /></p> <p> <input type="submit" value="提交" style="padding: 6px 20px;" /></p> </form> </body></html>
添加回答
举报
0/150
提交
取消