验证码的问题

allenjins 2008-04-13 08:44:10
大家好,偶是新新手,想做一个利用session的验证码,但是碰到问题,不知如何解决。。。


前台form.php
<html>
<head>
<title>check code</title>
</head>
<body>
<form name=check method=post action=check.php>
<input type=hidden name=init value=1>
验证码:<input type=text name=code maxlength=4 style="width=50px;">

<!--得到验证码图片-->
<img src=image.php>

<p>
<input type=submit value="提交">
</form>
</body>
</html>

生成验证码图片image.php
<?php
session_start();


$_session['authnum']=rand(1000,9999);

header("content-type:image/png");
function creat_image($width,$height,$authnum)
{


$im = imagecreate($width,$height);
$black = ImageColorAllocate($im, 0,0,0);
$white = ImageColorAllocate($im, 255,255,255);
$gray = ImageColorAllocate($im, 200,200,200);
imagefill($im,0,0,$gray);

//将四位整数验证码绘入图片
imagestring($im, 5, 10, 3, $authnum, $black);
for($i=0;$i<200;$i++)
{
$randcolor =
ImageColorallocate($im,rand(0,255),rand(0,255),rand(0,255));
imagesetpixel($im, rand()%70 , rand()%30 ,
$randcolor);
}
ImagePNG($im);
ImageDestroy($im);
}
creat_image(60,20,$_session['authnum']);
?>

核对check.php
<?php
session_start();
$code=$_POST['code'];


$init=$_POST['init'];
if($init==1)

{
if($code==$_session['authnum'])
{
echo "验证码正确!";
}

else echo "验证码错误,请重新输入!";
}
else echo "调用页面错误!"

?>

使用时发现验证码能够按要求生成并且显示,其他也没啥问题,但就是如果我不管输入正确与否,都回答"验证码错误,请重新输入!",但如果我什么都不输入,反而显示"验证码正确!"。。。

我怀疑$_session['authnum']没有设置成功,还是空。。。

怎么办。。。
...全文
56 点赞 收藏 10
写回复
10 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
xuyanhe 2008-05-01
不错,学习了,大小写很重要啊
回复
meiZiNick 2008-05-01
不会,帮顶
回复
UltraBejing 2008-05-01
不会,帮顶
回复
allenjins 2008-04-13
明白了,多谢各位:)
回复
netvt 2008-04-13
PHP是区分大小写的
回复
justicesun 2008-04-13
[Quote=引用 4 楼 faisun 的回复:]
$_SESSION 和 $_session 根本不一样

前者为系统变量,后者为用户变量
[/Quote]

$_SESSION是系统变量数组,存放用户会话数据

$_session是你自定义的变量数组,不是会话,不可以跨页面调用
回复
faisun 2008-04-13
$_SESSION 和 $_session 根本不一样

前者为系统变量,后者为用户变量
回复
allenjins 2008-04-13
发现把$_session['authnum']都改成$_SESSION['authnum']就可以了,但是原因是什么呢?
回复
allenjins 2008-04-13
还是不大明白呀...
回复
justicesun 2008-04-13
<?php
$_session['authnum']=rand(1000,9999);
echo "a".$_session['authnum']."<br/>";
echo "b".$_SESSION['authnum'];
?>

自己看吧
回复
相关推荐
发帖
基础编程
创建于2007-09-28

2.1w+

社区成员

从PHP安装配置,PHP入门,PHP基础到PHP应用
申请成为版主
帖子事件
创建了帖子
2008-04-13 08:44
社区公告
暂无公告