在尝试验证ReCaptcha响应时,我无法从我的网站主机(1和1)连接到Google的网站。我正在使用PHP和CURL建立连接。
如果我使用相同的代码段并在本地运行,它可以正常工作并按预期收到响应。
我对PHP和CURL不太熟悉,所以对我应该尝试/做的任何帮助都将不胜感激。
代码段如下:
<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
$CaptchaSecretKey="MySecretKey";
$uCaptchaR="CaptchaResponse";
$curl = curl_init();
$captcha_verify_url = "https://www.google.com/recaptcha/api/siteverify";
curl_setopt($curl, CURLOPT_URL,$captcha_verify_url);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, "secret=".$CaptchaSecretKey."&response=".$uCaptchaR);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER,1);
curl_setopt($curl, CURLOPT_CAINFO, 'cacert.pem');
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
curl_setopt($curl, CURLOPT_VERBOSE, true);
$captcha_output = curl_exec ($curl);
var_dump($captcha_output);
echo nl2br("\n");
echo nl2br("\n");
var_dump(curl_getinfo($curl));
echo nl2br("\n");
echo nl2br("\n");
echo curl_errno($curl);
echo nl2br("\n");
echo nl2br("\n");
echo curl_error($curl);
curl_close ($curl);
?>
代码返回的输出如下:
bool(false)
array(26) { ["url"]=> string(47) "https://www.google.com/recaptcha/api/siteverify" ["content_type"]=> NULL ["http_code"]=> int(0) ["header_size"]=> int(0) ["request_size"]=> int(0) ["filetime"]=> int(-1) ["ssl_verify_result"]=> int(0) ["redirect_count"]=> int(0) ["total_time"]=> float(20.375) ["namelookup_time"]=> float(1.0E-6) ["connect_time"]=> float(0) ["pretransfer_time"]=> float(0) ["size_upload"]=> float(0) ["size_download"]=> float(0) ["speed_download"]=> float(0) ["speed_upload"]=> float(0) ["download_content_length"]=> float(-1) ["upload_content_length"]=> float(-1) ["starttransfer_time"]=> float(0) ["redirect_time"]=> float(0) ["redirect_url"]=> string(0) "" ["primary_ip"]=> string(0) "" ["certinfo"]=> array(0) { } ["primary_port"]=> int(0) ["local_ip"]=> string(0) "" ["local_port"]=> int(0) }
7
Failed to connect to www.google.com port 443: Timed out
感谢。
答案 0 :(得分:1)
感谢您指点我正确的方向。通过在CURL脚本中添加以下行来解决该问题。
curl_setopt($curl, CURLOPT_PROXY, 'http://ntproxyus.lxa.perfora.net:3128');
希望这也可以帮助其他人。
由于
答案 1 :(得分:0)
您还可以尝试将您在CURL函数中引用的URL的IP地址(获取IP地址@ https://www.site24x7.com/find-ip-address-of-web-site.html get ip address or url)添加到您的Web服务器外出连接(设置为允许)连接)或可能出现在你的cpanel中只是启用它。
这将解决很多关于Web服务器卷曲功能的ERROR 7问题。