猿问

php验证码的问题,求助

不知道为什么,我的验证码,当什么都不输入时,点登录弹出输入正确,输入正确时弹出输入错误,可以麻烦再帮我看看吗?

<?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

<?php

header('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>


Momo_____
浏览 1895回答 2
2回答

梅超疯

不知道,,p

慕村1106498

f(!strtolower($_REQUEST['authcode']) == $_SESSION['authcode']){echo '输入正确';}else{echo '输入错误';}exit();}加上!,取反就好了
随时随地看视频慕课网APP
我要回答