为了账号安全,请及时绑定邮箱和手机立即绑定

可以帮我看看PHP的验证码吗?QWQ

可以帮我看看PHP的验证码吗?QWQ

Momo_____ 2017-06-06 20:19:25
不造是为什么,我明明输对了可是电脑说有问题TATzzmm.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>zzm.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); // 生成的验证内容不重叠 $x = ($i*100/4) + rand(5,10); // 生成的验证内容不齐平 $y = rand(5,10); // 用 $fontcolor 颜色将字符串 $fontcontent 画到 $image 所代表的图像的 $x,$y 坐标处 imagestring($image, $fontsize, $x, $y, $fontcontent, $fontcolor);}   //增加干扰元素    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);酱紫~
查看完整描述

2 回答

?
天使之翼死神之镰

TA贡献81条经验 获得超102个赞

验证码生成的php中开头缺少session_start(),要为session赋值必须启用session才行,所以$_SESSION['authcode']没有成功赋值,验证验证码的php中session值应该为空。其实你要学会排错,在关键变量的地方多用var_dump()测试输出结果,从而一步一步解决问题。

查看完整回答
1 反对 回复 2017-06-07
?
冯春龙

TA贡献2条经验 获得超0个赞

在zzm.php中,你没有把验证码字符串存入session。
查看完整回答
反对 回复 2017-06-06
  • Momo_____
    Momo_____
    在zzm.php中,加了这个$_SESSION['authcode']=$image;可是还是没有用的样子QWQ 特别奇怪的是,当什么都不输入时,点登录弹出输入正确,输入正确时弹出输入错误,可以麻烦再帮我看看吗?
  • 2 回答
  • 0 关注
  • 1990 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信