我在那里使用http://www.question2answer.org/软件和标准插件进行验证码。我试图更新软件,升级后我不断收到此错误。我不知道如何解决这个问题。我环顾四周,但没有任何直接关系。
警告:file_get_contents():SSL操作失败,代码为1。 OpenSSL错误消息:错误:14090086:SSL 例程:SSL3_GET_SERVER_CERTIFICATE:证书验证失败 第128行/qa/qa-plugin/recaptcha-captcha/recaptchalib.php
警告:file_get_contents():无法启用加密 第128行/qa/qa-plugin/recaptcha-captcha/recaptchalib.php
警告:file_get_contents( https://www.google.com/recaptcha/api/siteverify?secret=abc6LcMwv8SAAAAAN9QOkIlVKRQZzHS3DeZ8ZLxwxxcdsd-cs&response=03AOmkcwJV_JkhxK8hGJTIVKEDcPrNH5Y0wLwndp7v20Ipqd4HMO21LWHSyPsLFsdfdsfsdsdfsdA6FZ1LiFJZpl6-CmppsTAWc8Qzft_RXLvlzunzQtZWNDp0Kw8T-drMvHiOZf909v4ScysiPmaMrxkq_SSlJaOE_Q6sdfsdfdsfdsh5X7xLqvoFDFbV16BJBTkJ5Pot5ZDwmSGZSD_0pygTdEzh8j-tGuSpZLSDVJmQ7Xq6HR70Dd2idtKz_gfcIAZQisdfsdfdsfJHH1LyY3FAG_x9zHemy3tXF6oE7rWuBZ8JoHehkWhYYChe-cBbdSX1ZqPioNNaSvkREbooI7esdfsdfd3JkynEKlqnUBl3t__qpDMu&remoteip=12.102.238.217&version=php_1.1.2): 无法打开流:操作失败 第128行/qa/qa-plugin/recaptcha-captcha/recaptchalib.php
我去了第128行,这就是我在那里看到的。我看到这一行"return file_get_contents(self::SITE_VERIFY_URL . $params->toQueryString());".
我的代码周围有更多代码供您查询。
/**
* Sends GET requests to the reCAPTCHA service.
*/
class ReCaptchaGetRequestMethod implements ReCaptchaRequestMethod{
const SITE_VERIFY_URL = 'https://www.google.com/recaptcha/api/siteverify?';
/**
* Submit the request with the specified parameters.
*
* @param ReCaptchaRequestParameters $params Request parameters
* @return string Body of the reCAPTCHA response
*/
public function submit(ReCaptchaRequestParameters $params){
return file_get_contents(self::SITE_VERIFY_URL . $params->toQueryString());
}
}
你能帮帮忙吗?我尝试了一些事情,如在php.ini中添加证书,但它没有用。所有这一切都运行良好,当我升级时,它开始失败。所有注册都被卡住了。
请帮忙。
答案 0 :(得分:1)
上述解决方案是使用基于CURL的解决方案,您可以使用CURL替换file_get_contents。以下是新修改的代码。我已经在step by step blog article中捕获了所有人,并为每个人提供了步骤。
$url = self::SITE_VERIFY_URL . $params->toQueryString();
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$data = curl_exec($ch);
curl_close($ch);