我需要在google recaptcha中使用cURL
方法而不是file_get_contents()
。(使用mysqli和PHP)
默认情况下,file_get_contents()
用作文件RequestMethod/Post.php
中的请求方法。
但是在服务器中,allow_url_fopen
设置为0
(关闭),因此我无法使用此重新绑定服务,因此会引发No wrapper found
错误。 CURL是我应该选择的唯一方式。
不允许更改allow_url_fopen
标志。不能在htaccess中执行,它将无法正常工作。
我需要使用文件RequestMethod/CurlPost.php
中的CURL请求方法并覆盖默认的file_get_contents()
。 如何将/强制cURL作为默认请求方法?
require_once __DIR__ . '/recaptcha/autoload.php';
$recaptcha = new \ReCaptcha\ReCaptcha('_SECRET_KEY_');
在提交表格后,我有:
$resp = $recaptcha->verify($_POST['g-recaptcha-response'], $_SERVER['REMOTE_ADDR']);
if ($resp->isSuccess()) {
//my code
}
我想,如果默认方法( file_get_contents )失败,那么替代工作方法应该自动用作请求方法,但事实并非如此。这是我正在使用https://github.com/google/recaptcha
的库答案 0 :(得分:0)
您需要将新请求方法传递给构造函数:
$recaptcha = new \ReCaptcha\ReCaptcha(
'_SECRET_KEY_',
new \ReCaptcha\RequestMethod\CurlPost()
);
请参阅https://github.com/google/recaptcha/blob/master/src/ReCaptcha/ReCaptcha.php#L59