关于制作图形验证码+session的问题。
大家好。
我的三个程序列在下面,大家帮忙看看程序本身是否有问题。
我现在碰到一个很奇怪的问题,在一台机器上可以正确运行,但在另外一台机器上不行,两台机器都是 WinXP SP2 + VMWare(FreeBSD + Apache 2.0 + PHP 4.4.0)。
具体表现为verify.php程序重新建立一个session,所以也就得不到正确结果了。
起先怀疑是不是防火墙的原因,但我把那台机器的防火墙都关闭了,还是不行。而且想想如果是防火墙的问题,那么我应该连CSDN或者其它网站的图形验证也不能通过才是,可事实是那些网站都访问正常。
请做过验证码的大侠们请指教一下,程序本身有没有问题?
谢谢!
--------------------------------------------------------------
main.html
--------------------------------------------------------------
<html>
<head><title>Test</title></head>
<body>
<form method=post action="verify.php">
<input type="text" name="verify_code">
<img src="buildimg.php" border="0" alt="验证码"><br>
<input type="submit" name="submit">
</form>
</body>
</html>
--------------------------------------------------------------
buildimg.php
--------------------------------------------------------------
<?php
$img = imagecreate(50, 20);
$white = imagecolorallocate($img, 0xFF, 0xFF, 0xFF);
$black = imagecolorallocate($img, 0x00, 0x00, 0x00);
srand((int)time());
for($i = 0; $i < 6; $i++) {
$text .= rand(1, 9);
}
session_start();
$_SESSION['code'] = $text;
imagestring($img, 3, 1, 1, $text, $black);
header("Content-Type: image/png");
imagepng($img);
imagedestroy($img);
?>
--------------------------------------------------------------
verify.php
--------------------------------------------------------------
<?php
session_start(); //总是新建立一个sessionid
print $_SESSION['code'] . "<br />";
print $_POST['verify_code'] . "<br />";
exit();
?>
--------------------------------------------------------------