我试图从recaptcha获得答案,而不是获得成功/失败的消息,但未能找到方法。 为了掌握场景,我们假设一个。
我在我的php页面中触发了这行:
echo recaptcha_get_html($publickey, $error);
然后我遇到了挑战。
现在,当用户提交时,此代码将被执行。
$resp = recaptcha_check_answer ($privatekey,
$_SERVER["REMOTE_ADDR"],
$_POST["recaptcha_challenge_field"],
$_POST["recaptcha_response_field"]);
此功能定义为:
function recaptcha_check_answer ($privkey, $remoteip, $challenge, $response, $extra_params = array())
现在,$ extra_params是什么?在哪里我可以了解这一点。 recapthca api of php中没有说明任何内容。有没有选择通过传递“$ extra_params”中的内容来获取recaptcha的文本?
提交时,它会向我发送此回复:
Array ( [0] => HTTP/1.1 200 OK Cache-Control: no-cache, no-store, max-age=0, must-revalidate Pragma: no-cache Expires: Fri, 01 Jan 1990 00:00:00 GMT Date: Fri, 20 Jul 2012 18:49:51 GMT Content-Type: text/plain X-Recaptcha-Request-Duration: 8 X-Content-Type-Options: nosniff X-XSS-Protection: 1; mode=block Server: GSE Connection: close [1] => true success ) You got it!
现在,我想在回复中获得recaptcha 的答案。在这个特定的挑战中,这将是“统治eveloost”
非常感谢任何帮助。
答案 0 :(得分:1)
reCAPTCHA没有用于返回呈现给用户的实际挑战的方法。原因是因为安全。我个人认为reCAPTCHA是一个伟大的概念,但它是世界上最讨厌的事情之一,因为有一半时间,你无法阅读挑战。我发现自己点击了“新挑战”按钮超过10次。
无论哪种方式,如果你想做你提到的事情,你最好使用自托管的CAPTCHA解决方案。
此$extra_params
变量还包括调用的其他参数。谷歌没有提到它允许额外的参数,所以在我最好的理解中,它被添加,以防谷歌在未来实现API的新参数,现在不包括在库中。对于使用旧版本库的人来说,它会更简单。
答案 1 :(得分:0)
经过大量的谷歌搜索和研究工作,我发现recaptcha的工作方式,无法得到答案。我只能知道成功状态。就是这样。