我正在使用谷歌 reCAPTCHA,它工作得非常好。但由于一些问题,我开始使用 php 图像验证码。CAPTCHA 图像已正确呈现,但我无法正确验证。
我使用此代码生成 CAPTCHA
session_start();
if(isset($_SESSION['captcha_text']))
{
unset($_SESSION['captcha_text']);
}
$permitted_chars = '123456789ABCDEFGHJKLMNPQRSTUVWXYZ';
// ...
// code to generate CAPTCHA
// ...
header('Content-type: image/png');
imagepng($image);
imagedestroy($image);
?>
然后我使用此代码显示验证码
<img src="CAPTCHA/captcha.php" alt="CAPTCHA" class="captcha-image"><i style="position: absolute;" class="refresh-captcha"></i><BR>
<input autocomplete="off" style="margin-top: 0.8rem;" type="text" id="captcha" name="captcha_challenge" pattern="[A-Z]{6}">
现在我使用此代码在另一个 PHPfile 中验证 CAPTCHA
session_start();
header('Content-Type: text/html; charset=utf-8', true);
if(isset($_POST['captcha_challenge']) && strtoupper($_POST['captcha_challenge']) == $_SESSION['captcha_text']) {
echo '<p>You entered a correct Captcha.</p>';
} else {
echo '<p>You entered an incorrect Captcha.</p>';
}
$_SESSION['captcha_text'] = NULL;
unset($_SESSION['captcha_text']);
exit;
到现在为止它工作正常。我手动测试它,它的工作原理。但是当我使用一些安全脚本来测试表单时,我会收到垃圾邮件。为什么??我错过了什么?<--抱歉我的英语不好-->
德玛西亚99