2017-09-15 16 views
0

私はhttp://www.question2answer.org/ソフトウェアと標準プラグインをcaptchaに使用しています。ソフトウェアを更新しようとしましたが、アップグレード後もこのエラーが発生します。私はこれをどのように修正するのか分かりません。私は周りを見回しましたが、何も直接関連していません。コード1でSSL操作が失敗しました。OpenSSLエラーメッセージ:

Warning: file_get_contents(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed in /qa/qa-plugin/recaptcha-captcha/recaptchalib.php on line 128

Warning: file_get_contents(): Failed to enable crypto in /qa/qa-plugin/recaptcha-captcha/recaptchalib.php on line 128

Warning: 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): failed to open stream: operation failed in /qa/qa-plugin/recaptcha-captcha/recaptchalib.php on line 128

私は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

上記のソリューションは、file_get_contentsをCURLに置き換えたCURLベースのソリューションを使用することです。以下は新しい変更されたコードです。私は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); 
+0

このcorectソリューションならば、私はわからない、あなたのエラーメッセージは、「SSL3_GET_SERVER_CERTIFICATEを:証明書が確認に失敗しました」と言い、それはここhttps://stackoverflow.com/q/26148701/2360229 と同じだように見えますあなたは今何をしているのですか?CURLOPT_SSL_VERIFYPEER = falseを設定しました。 file_get_contents()でこれを行うこともできます。https://stackoverflow.com/a/28701786/2360229 を参照してください。この関数はピアを検証してはならず、これが最初のエラーを抑止する方法ですが、問題を解決する方法はありません。 –

関連する問題