如何在php中从一个页面访问当前会话值到另一个页面

时间:2014-01-04 07:56:14

标签: php

我在这样的一个a.php中设置会话

<?php 
 session_start(); 
 $text = rand(10000,99999); 
 $_SESSION["vercode"] = $text; 

以另一种php形式访问此会话

<script type="text/javascript">

    var Cpttext = "";

    function validate_test1(pricequote){

if(pricequote.vercode.value=='')
    {
       alert(Cpttext);
    alert("please enter correct captcha");
    pricequote.vercode.focus();
    return false;
    }
if(pricequote.vercode.value != Cpttext){
      alert(Cpttext);
    alert("please enter correct captcha");
    pricequote.vercode.focus();
    return false;
    }
}

</script>  

我的验证码图片代码是

 <tr>
 <td><label for="captcha">Enter Code:</label><img src="../include/captcha.php"></td>
 <td>
 <input type="text" name="vercode" />
 <td>
 </tr>

第二种形式的初始化会话b.php就像这样

 <?php @session_start(); ?>
<script type="text/javascript">
  Cpttext = "<?php echo htmlspecialchars(json_encode($_SESSION['vercode'])); ?>";
</script>`

但我没有参加当前的会议。我正在参加上一届会议。我的目标是获得当前会话并检查它是否正确 这里的验证码图像显示了一个代码会话采用以前的代码值。同时获得相同的

2 个答案:

答案 0 :(得分:2)

您在a.php中设置会话密钥“vercode”,但在 b.php 中,您正在回显另一个会话密钥“versessioncode”。你也应该逃避生成的javascript代码。

<script type="text/javascript">
   var Cpttext = "<?php echo htmlspecialchars(json_encode($_SESSION['vercode'])); ?>";
</script>

答案 1 :(得分:0)

您需要在使用之前启动会话:

<?php session_start(); ?>
<script type="text/javascript">
  Cpttext = "<?php echo $_SESSION['vercode'];?>";
</script>