我正在尝试在我的网站上实现验证码,但它总是会出错 不正确,验证码溶胶。
请参阅我的代码
require_once('recaptchalib.php');
$publickey = "xxxxxxxxxxxxxx";
$privatekey = "xxxxxxxxxxxxxxxxxxxxxxxxx";
$resp = recaptcha_check_answer ($privatekey,$_SERVER["REMOTE_ADDR"],$_POST["recaptcha_challenge_field"],$_POST["recaptcha_response_field"]);
if ($resp->is_valid) {
echo "You got it!";
} else {
echo "Error=". $resp->error;
}
请点击此处It is an Ajax call
答案 0 :(得分:0)
看起来validateCapture
中的数据发送被破坏了。目前你在AJAX调用中有这个:
data: "recaptcha_challenge_field=" + challengeField +
"&recaptcha_response_field=" + responseField,
这导致调试变量转储:
Array
(
[recaptcha_challenge_field] => 03AHJ_VuskQR9VZwr6Uo5DllF4CL1GHDLajHiTQGHI3SE2pryBlSW-BMVeWMAudfOaTmOZu8vAPx5DaYjFoIjxhursn-GnXQwGA4T8Mn1rLL7E8Vrz-xVRs9c4c0-Gb9FxFhlNjy257xiTmvWikzjmRfsa9I3PZQcDSwgDu7Gq6A_RBC9NrV-cyqw
[amp;recaptcha_response_field] => capture ceptICA
)
第二个的关键看起来非常错误,因为它包含编码的&符号。您可以将&
替换为&
的非urlencoded值,但我倾向于更喜欢这个:
data: {
recaptcha_challenge_field: challengeField,
recaptcha_response_field: responseField
}
这是相同数据的哈希,并且以某种方式感觉更干净。试试吧?