session变量仅检索以前的值

时间:2011-08-26 03:41:20

标签: php session

我需要获取会话变量值并将其与输入进行比较。

这是代码:

<?php
echo "<img src='captchas.php'><br><center><input type='text' size='10' name='check' id='postcaptcha' onChange='validatecaptcha();'></center><div id='validationforcaptcha'></div>";

$captchacode = $_SESSION['newcode'];

echo "<input type='text' name='sessioncaptcha' id='sessioncaptcha' value=$captchacode />"; 
?>

这是captcha.php

    <?php session_start(); ob_start();

$img = imagecreatefrompng('IMAGES/black.png'); 
$numero = rand(100000000, 999999999); 
$_SESSION['check23'] = $numero;
$white = imagecolorallocate($img, 255, 255, 255); 
imagestring($img, 10, 8, 3, $numero, $white); 

header ("Content-type: image/png"); 
imagepng($img); 

?>

我不知道为什么$ _SESSION ['check23']变量只检索已显示的先前验证码(不是当前显示的那些)

1 个答案:

答案 0 :(得分:2)

也许你假设你的第一个脚本在 captcha.php 之后被执行了?

这就是实际发生的事情:

  1. 执行您的第一个脚本,并将该页面提供给用户。
  2. 用户的浏览器将 captcha.php 作为图像请求。
  3. 执行
  4. captcha.php 并将图像发送给用户。
  5. 尝试在第一个脚本中生成CAPTCHA代码并将其保存到$_SESSION['check23']。您可以稍后在 captcha.php 中检索$_SESSION['check23']以呈现相应的图像。