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