由于某种原因,我无法让我的会话验证码工作。
这就是我目前的尝试。
$_SESSION['n1'] = rand(1,20);
$_SESSION['n2'] = rand(1,20);
$_SESSION['expect'] = $_SESSION['n1']+$_SESSION['n2'];
这就是我的形式
<form action="" method="post">
<?=$_SESSION['n1']?> + <?=$_SESSION['n2']?> =
<input name="captcha" type="text" class="text" />
<input name="submit" type="submit" />
由于某种原因,它总是在验证码不正确的情况下返回。
if($_SESSION['expect'] != $_POST['captcha']) {
$err[] = 'The captcha answer is incorrect.';
}
答案 0 :(得分:2)
这些会话是否在表单发布到的同一页面上创建?也许$ _SESSION ['expect']被新值覆盖。在这种情况下,它不会等于$ _POST ['captcha']。
答案 1 :(得分:1)
使用该命令:
if($_SESSION['expect'] != $_POST['captcha']) {
$err[] = 'The captcha answer is incorrect.';
}
...
$n1 = rand(1,20);
$n2 = rand(1,20);
$_SESSION['expect'] = $n1 + $n2;
那样的值不会被覆盖
答案 2 :(得分:1)
正在通过session_start()或session.auto-start - 指令启动会话?
你确定会话ID正在传递吗?