php中如何检查验证码是否输入正确.

php中如何检查验证码是否输入正确.

<form id="form1" name="form1" method="post" action="">
<input name="number" type="text" id="number" />
<input type="submit" name="Submit" value="提交" />
</form>

<img src="fd.php?">

<?php
include_once("fd.php"); //fd.php为验证码的网址
if($number != $image)   //$image为验证码
{
  print("校验码不正确!");
  die();
}
?>


以上文件保存为login.php
打开login.php时,文本筐能显示,验证码图片能显示.
但系后面一大堆乱码..
http://maxkiss.512j.com
这个是演示...
上面没有广告,只有我刚才说的那写,所以希望版主不要删帖,教我一下..

或者有没有其他方法检查吖?

你下面这个又输出了一次
include_once("fd.php"); //fd.php为验证码的网址
所以为乱码.建议把随机码保存在全局变量cookies或session
检测的时候直接通过全局变量获取,而无需把fd.php再include进来一次
如履薄冰

<?php
session_start();
$checkNumber = $_SESSION['code'];
if($number != $checkNumber)
{
    echo "校验码不正确!";
    die();
}
?>

改成这样吗?
乱码消失了,
可是验证不到,
总是出现验证码不正确.

这一个是验证码代码
<?php
session_start();
session_register('code');
$width = "70";//图片宽
$height = "25";//图片高
$len = "4";//生成几位验证码
$bgcolor = "#ffffff";//背景色
$noise = true;//生成杂点
$noisenum = 200;//杂点数量
$border = false;//边框
$bordercolor = "#000000";
$image = imageCreate($width, $height);
$back = getcolor($bgcolor);
imageFilledRectangle($image, 0, 0, $width, $height, $back);
$size = $width/$len;
if($size>$height) $size=$height;
$left = ($width-$len*($size+$size/10))/$size;
for ($i=0; $i<$len; $i++)
{
        $randtext = rand(0, 9);
        $code .= $randtext;
        $textColor = imageColorAllocate($image, rand(0, 100), rand(0, 100), rand(0, 100));
        $font = rand(1,4).".ttf";
        $randsize = rand($size-$size/10, $size+$size/10);
        $location = $left+($i*$size+$size/10);
        imagettftext($image, $randsize, rand(-18,18), $location, rand($size-$size/10, $size+$size/10), $textColor, $font, $randtext);
}
if($noise == true) setnoise();
$_SESSION['code'] = $code;
$bordercolor = getcolor($bordercolor);
if($border==true) imageRectangle($image, 0, 0, $width-1, $height-1, $bordercolor);
header("Content-type: image/png");
imagePng($image);
imagedestroy($image);
function getcolor($color)
{
     global $image;
     $color = eregi_replace ("^#","",$color);
     $r = $color[0].$color[1];
     $r = hexdec ($r);
     $b = $color[2].$color[3];
     $b = hexdec ($b);
     $g = $color[4].$color[5];
     $g = hexdec ($g);
     $color = imagecolorallocate ($image, $r, $b, $g);
     return $color;
}
function setnoise()
{
        global $image, $width, $height, $back, $noisenum;
        for ($i=0; $i<$noisenum; $i++){
                $randColor = imageColorAllocate($image, rand(0, 255), rand(0, 255), rand(0, 255));  
                imageSetPixel($image, rand(0, $width), rand(0, $height), $randColor);
        }
}
?>

这是我在你网站的截图.这不是其他问题.是你的态度问题

附件

1.jpg (5.16 KB)

2007-1-11 21:24

1.jpg

2.jpg (2.66 KB)

2007-1-11 21:24

2.jpg

3.jpg (22.1 KB)

2007-1-11 21:24

3.jpg

4.jpg (18.45 KB)

2007-1-11 21:24

4.jpg

毕业了。。。