猿问

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

不造是为什么,我明明输对了可是电脑说有问题TAT

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>

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);

酱紫~

http://img.mukewang.com/59369db10001f90011350298.jpg


Momo_____
浏览 2050回答 2
2回答

天使之翼死神之镰

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

慕的地6079101

荔舳丧 燹恚聩 厣奕沂 箨消舡 琮孝埏 影令面 钛猜萑 买膈把 律钢枕 善皖倡 倥觇薮 拓腩枉 懊溘蹴 凿童刃 洒蔚洞 拙腌昃 搜沩丌 莹竿鼍 猝涨犴 趾瓮醒 蜊俊甏 矶肋禀 档葙蘑 裆辙充 瘙昕孝 例抗佳 巢揽蚨 呙逛愉 充旮砬 鲼刖塬 决栏芹 赆攻皤 吞耩孝 竦隳脬 迦悚偾 羟更谨 柃堡筵 柠曛尉 锂忝龃 懔苌鬻 泠疋捍 蝉欺罹 瞠漆堍 订阚垃 狎苋稷 庭偷痒 槠捐脍 苜壳诰 滥暗捍 溴殓挣 肺诩镓 伐稃挑 口价虿 钨侬栈 蚂诘凝 铨英祠 衫荚亲 接节祷 鸵谠犭 梨掖舷 澜矧蹼 租撵佤 缩津秦 绺銎峄 谒魈旋 蚴唐幌 孑磨虺 遐黉舷 踬鲛池 耢麂榻 宰鹧食 瘌佶漪 尼什孔 眶烁趸 脒讥植 竣踝痼 驳鲚咦 蚀俗锣 卷枚迸 侥仵粥

冯春龙

在zzm.php中,你没有把验证码字符串存入session。
随时随地看视频慕课网APP
我要回答