Php 如何检索挑战的recapthca答案,而不是仅获取成功状态

Php 如何检索挑战的recapthca答案,而不是仅获取成功状态,php,captcha,recaptcha,Php,Captcha,Recaptcha,我试图从recaptcha得到一个答案,而不是仅仅得到成功/失败的消息,但没有找到解决方法。 为了掌握场景,让我们假设一个场景 在我的php页面中,我使用了这句话,得到了一个recaptcha: echo recaptcha_get_html($publickey, $error); 然后我遇到了一个挑战 现在,当用户提交它时,该代码将被执行 $resp = recaptcha_check_answer ($privatekey,

我试图从recaptcha得到一个答案,而不是仅仅得到成功/失败的消息,但没有找到解决方法。 为了掌握场景,让我们假设一个场景

在我的php页面中,我使用了这句话,得到了一个recaptcha:

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?在那里我可以知道这件事。本文件中未说明任何内容。是否有任何选项可以通过在“$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的答案。在这个特定的挑战中,这将是“统治伊夫洛斯特”


非常感谢您提供的任何帮助。

reCAPTCHA没有返回向用户提供的实际挑战的方法。原因是安全问题。我个人认为reCAPTCHA是一个很好的概念,但它是世界上最烦人的事情之一,因为有一半时间,你无法阅读挑战。我发现自己点击“新挑战”按钮超过10次

无论哪种方式,如果您想做您提到的事情,最好使用自托管验证码解决方案


另外,
$extra_params
变量还包括调用的附加参数。Google没有提到它允许额外的参数,所以在我的理解中,它是为了防止Google将来在API中实现新的参数而添加的,而这些参数现在不包括在库中。这将使人们使用旧版本的图书馆变得更简单。

经过大量的谷歌搜索和研究,我发现recaptcha的工作方式不可能得到答案。我只能知道一个成功的状态。仅此而已。

这里有一个重要的问题-为什么?暂且不提这一点,您可以从传递给
recaptcha\u check\u answer()
的两个
$\u POST
变量中的一个变量中获取用户提交的内容(在我的脑海中,我忘记了这一点,只需重复它们),如果您收到
success
消息,您就得到了答案。谷歌不会发布关于你可以传递的额外参数的信息,所以我怀疑他们不想让你乱来。他们可能只允许他们调试自己的应用程序。@Dave实际上我想用recaptcha挑战运行OCR,并检查它是否符合google的答案。也许我可以通过我的OCR作为表单输入值传递解码字符串,但问题是我想衡量我的OCR算法的成功率。顺便问一下,你确定这一点:“谷歌不会发布关于你可以传递的其他参数的信息吗?”???顺便说一句,谢谢你的信息。recaptcha的全部要点是无法进行OCR。上面显示的一个单词(
reign
)无法与OCR算法匹配,我愿意打赌它比你的好(没有冒犯),而另一个(
eveloost
)是一个已知单词,它是为了防止OCR而故意置乱的。此外,一般来说,OCR不可能读取CAPTCHA。如果你想测试你的OCR算法,你应该更好地设计你自己的测试用例,或者像recaptcha的源数据那样,试着读一本书。感谢你的推荐,经过长期的研究,我也同意你的观点,这是一个坏主意。我的理解是,在很多情况下,验证码中的两个单词中有一个是谷歌所不知道的,这就是为什么谷歌会提供它(而且它可能输入有点不正确,但仍然被接受)。一旦提交了许许多多的解决方案,他们会对它们进行权衡,看看哪一个提交的最多,然后计算出用户为他们识别了未知单词。这样一来,他们就可以从单词最初来源的书籍/作品中创建可搜索的文本。