2017-03-23 9 views
2

私はGoogle Recaptchaライブラリ(https://github.com/google/recaptcha)を使ってフォームの提出を確認しています。これは何ヶ月もうまくいきました。この例外は、単純な要求(ライブラリ外)で断続的に複製することができGoogle Recaptcha file_get_contents():暗号を有効にできません

ErrorException: file_get_contents(): Failed to enable crypto in /vendor/google/recaptcha/src/ReCaptcha/RequestMethod/Post.php:68 

(\ reCAPTCHAの\ reCAPTCHAのから呼び出さ::検証) :

file_get_contents('https://www.google.com/recaptcha/api/siteverify'); 
突然、私のようなエラーの多くを気づき始めました

エラーが発生すると、エラーを表示するまでに約52秒かかります。それ以外の場合は、すぐに成功します。このタイムアウト値がどこから来ているのか分かりません。以前の投稿では、このエラーはSSL3に関連していることが示唆されています(それはありません - 明らかにGoogleはTLS 1.2を使用していません)。私もcurlの最新のcacerts.pemファイルを使ってみましたが、問題は解決しません。

また、このURLをcurl(PHPまたはcliから)で引き出すことに問題はありません。

サーバは、Ubuntu 14.04でPHP 7.1.3を実行しています。私はではない私のローカルマシン上でこの問題を経験して、同じPHPをUbuntu 16.10で実行しているので、何とか関係があるのだろうかと思っています。私は本当にここに迷っています。私はライブラリをフォークし、file_get_contentsの代わりにcurlを使うように書き直すことができますが、それは最高の回避策のようです。

+0

今日、私は全く同じ問題を抱えています(PHP 5でも)。あなたは解決策を見つけましたか? – MrCarrot

+0

@MrCarrot、 'php.ini'に' default_socket_timeout = 360'を設定してみてください。それがあなたのサーバのOSとは何かを助けるかどうか確認してください。 –

+0

それはネットワークの問題だった可能性はありますか?多分これは関連しているでしょうか? https://stackoverflow.com/questions/26148701/file-get-contents-ssl-operation-failed-with-code-1-and-more?rq=1 – am05mhz

答えて

0

ユーザーは52秒待つことができず、失敗するだけでタイムアウトが短縮されます。

エラーが発生してユーザーに「ソフト」エラーが表示されている限り、何かが失敗することはありません。大したことではありません。

問題は、私が素晴らしいユーザーエクスペリエンスを伝えないと思っている間にユーザーを待っておくことです。

関連する問題