authorizationnum.php为验证码生成文件,随机生成一批数字,并把其放到session变量中//a.php
<form action='b.php'>
<img src="authorizationnum.php" border=0 align="bottom">
<input name="verifycode" type="text" size="5" maxlength="4"/>
<input name="OrderNow" type="submit" />
</form>b.php
echo session变量//这里显示的总是上一次的验证码,不知怎么回事!请大侠们指导一下
<form action='b.php'>
<img src="authorizationnum.php" border=0 align="bottom">
<input name="verifycode" type="text" size="5" maxlength="4"/>
<input name="OrderNow" type="submit" />
</form>b.php
echo session变量//这里显示的总是上一次的验证码,不知怎么回事!请大侠们指导一下
<?php
/* AkoBook AutoScript-Protection
*
* @author: Dominik Paulus, [email protected]
* 25.03.2005
*/session_start('akobookcode');
session_register('code');mt_srand((double)microtime()*1000000);
// Numerical code
$seccode = mt_rand(10000, 99999);
/* // Code with chars. But difficult to read.
$chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
$seccode = "";
for($i = 0; $i < 5; $i++)
$seccode .= $chars[mt_rand(0, 35)];
*/
$_SESSION['code'] = $seccode;
echo $seccode;
exit();
// create image
header("Content-Type: image/png");
$im = imagecreate(60, 18) or die('Image create error!');// Image colors
// imagecolorallocate($im, R, G, B) Only change R,G,B!
$bgcolor = imagecolorallocate($im, 255, 255, 255);
$fontcolor = imagecolorallocate($im, 150, 150, 150);
$linecolor = imagecolorallocate($im, 255, 255, 255);
$bordercolor = imagecolorallocate($im, 150, 150, 150);
// Grid
for($x=10; $x <= 100; $x+=10)
imageline($im, $x, 0, $x, 50, $linecolor);
// Middleline
imageline($im, 0, 9, 100, 9, $linecolor);
// Border
imageline($im, 0, 0, 0, 50, $bordercolor);
imageline($im, 0, 0, 100, 0, $bordercolor);
imageline($im, 0, 17, 100, 17, $bordercolor);
imageline($im, 59, 0, 59, 17, $bordercolor);imagestring($im, 5, 8, 1, $seccode, $fontcolor);
imagepng($im);
imagedestroy($im);
?>
//a.php
<form action='b.php'>
<img src="authorizationnum.php?<?php echo rand(); ?>" border=0 align="bottom">
<input name="verifycode" type="text" size="5" maxlength="4"/>
<input name="OrderNow" type="submit" />
</form>
header("Last-Modified: ".gmdate("D,d M Y H:i:s")." GMT");
header("Cache-control: no-cache, must-revalidate");
header("Pragma: no-cache");
我有一个验证码生成类,在生成相应数字后,我就将其赋给session进行保存,而后在用户添写完验证码时使其与session值做比较,通过我的跟踪发现,验证码总是上次生成的!
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
authorizationnum.php