如何获取验证码的值,并与表单中输入的验证码进行判断是否相等。
以下是验证码的代码:<?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);
?>
以下是验证码的代码:<?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);
?>
<form method='post' action='phpcode.php'>
<input id='yzm' name='yzm'/>
......
</form>
提交后。。
新建一个phpcode.php文件,
if($_POST['yzm']===$_SESSION['yzm']){
echo '验证码正确';
}
$_SESSION["num"]=$num;
如果在别的网页中获取,要在页面最上加session_start();
$number = $_SESSION["num"];
$number就是了啊
如果在同一个页面中,$num便是。