code.php//这是一个创建验证码的类。以下是该文件的内容。
<?php
class code
{
      .......
}
session_start();
$code = new code(50,20,4);//创建一个验证码对象。长50,宽20,四位随机数。
$_SESSION['num'] = $code->image();//使用其中的成员函数,来真正生成一个验证码图像。并返回随机数的值,赋给一个session变量。
?>
这是一个注册页面,叫:register.php。里面有个注册表单,包含一个验证码。
register.php
<form action="" method="post">
    验证码:<input type="text" id="code" ><br />
    <img id="code" src="code.php"  />
</form>
<?php
//请问,我如何能在这里得到这个验证码的值呢?或是在本页面中,如何能得到上面显示的这个验证码的值?当然如果在其它页面中,是可以通过$_SESSION['num'] 得到这个值的。注意,我说的是在当前页面中如何得到这个值?
?>

解决方案 »

  1.   

    取验证码的页面
    session_start();
    $_SESSION['num']  //这个就是验证码的值
      

  2.   

    我想,你是想在本页面加判断验证码输入是否正确吧?!
    咱们分析下:
    <img id="code" src="code.php" />
    你的验证码是被包进来的,点击验证码,验证码的值也会发生变化,相应的session中的值也会发生变化。我有个提议:你在code.php中生成session时,也用流输出一个隐藏的<input type="hidden"  id="" value=""/>把值赋给value,这样当你触发事件时,可以用JS通过id获得其中的值.
      

  3.   

    我建议你还是用ajax来验证 你的验证码是否正确...
      

  4.   

    用ajax验证,也要先在注册页面取到这个验证码的值啊。现在的问题是,如何在当前页面取到这个值?这是问题的关键。请高人指点下。
      

  5.   

    如果是dz论坛,则不可能。
    它的session和验证码是分离的,在数据库中保存。
      

  6.   

    在本页中用iframe嵌入一个页面,在那个页面中调用 $_SESSION['num']  即可实现你的要求。当然要注意,ifreame要放在<img id="code" src="code.php" />这个后面。
    -----------------------------------------------------------------------------------
    (其实,我想:直接在<img id="code" src="code.php" />后面直接加上$_SESSION['num']应该也是能够显示出验证码值的,因为上一句code.php已经执行,那么验证码的值就已经赋给了$_SESSION['num'],所以此时候 echo $_SESSION['num'] 应该能够显示出验证码)
      

  7.   

    生成注册码的时候 把值放在SESSION里,比较的时候和SESSION里的值 比较就行了
      

  8.   

    在你的注册页面用ajax获取服务器session!