如何获取验证码的值,并与表单中输入的验证码进行判断是否相等。
以下是验证码的代码:<?php
session_start();
session_register("num");
//创建文件头
header('Content-type: image/png');
function getch($length)
{
        $code = "";
        $chars = "0123456789";
        
        $max = strlen($chars) - 1;
        for($i=0;$i<$length;$i++)
        {
                $code .= $chars[mt_rand(0,$max)];
        }
        return $code;
}
//画验证码图片
//1.创建一张图片
$tp = imagecreate(44,20);
//2.获得颜色
$red = imagecolorallocate($tp,67,149,74);
$blue = imagecolorallocate($tp,255,255,255);
//3.填充颜色
imagefill($tp,0,0,$red);
$num = getch(4);//获得验证码
$_SESSION["num"]=$num;
//4.设置文本内容
imagestring($tp,5,4,2,$num,$blue);
for($i=0;$i<100;$i++)
{
        //随即颜色
        $sj = imagecolorallocate($tp,mt_rand(0,255),mt_rand(0,255),mt_rand(0,255));
        //随即坐标
        $x = mt_rand(0,44);
        $y = mt_rand(0,20);
        //
        imagesetpixel($tp,$x,$y,$sj);
        if($i%60==0)
        {
                $x1 = mt_rand(0,44);
                $y1 = mt_rand(0,20);
                imageline($tp,$x,$y,$x1,$y1,$sj);
        }
}//5.输出图片
imagepng($tp);
imagedestroy($tp);
?>

解决方案 »

  1.   

    在$num = getch(4);这行下面添加此行:$_SESSION['num']=$num;//将$num保存session中html页面代码
    <form method='post' action='phpcode.php'>
         <input id='yzm' name='yzm'/>
         ......
        </form>
    提交后。。
    新建一个phpcode.php文件,
    if($_POST['yzm']===$_SESSION['yzm']){
        echo '验证码正确';
    }
      

  2.   

    //获得验证码
    $_SESSION["num"]=$num;
    如果在别的网页中获取,要在页面最上加session_start();
    $number = $_SESSION["num"]; 
    $number就是了啊
    如果在同一个页面中,$num便是。