PHP - file_get_contents()'SSL:操作成功完成。'并且'无法同时启用加密'(Google ReCaptcha)

时间:2017-01-12 00:42:54

标签: php file-get-contents php-5.6 recaptcha

一位同事来找我,要求帮助解决这个特殊的错误。我们使用谷歌的recaptcha API作为我们的注册和登录表单,这似乎在用户访问和注册软件时起作用。但是,我们的错误日志文件显示这样的错误,偶尔出现(我已经删除了某些东西,因为这是来自生产环境):

  

[2017年1月10日18:37:21] PHP警告:file_get_contents():SSL:操作成功完成。在第76行的文件\ path \ save_register.php中

     

[10-Jan-2017 18:37:21] PHP警告:file_get_contents():无法在第76行的文件\ path \ save_register.php中启用加密

     

[10-Jan-2017 18:37:21] PHP警告:file_get_contents(https://www.google.com/recaptcha/api/siteverify?secret=XYZ&response=):无法打开流:第76行的文件\ path \ save_register.php中的操作失败

     

[2017年1月10日18:37:21] PHP警告:file_get_contents():SSL:操作成功完成。在第76行的文件\ path \ save_register.php中

以下是PHP代码的相关部分及其行号:

74: if (isset($_POST['g-recaptcha-response'])) {
75:   $recaptcha_secret = "XYZ";
76:   $response = file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=".$recaptcha_secret."&response=".$_POST['g-recaptcha-response']);
77:   $response = json_decode($response, true);
78: }else {
79:   $response['success'] = false;
80: }

作为一个说明,到目前为止,我们无法在我们的测试环境中复制这一点,这个测试环境(据称)与生产“完全相同”。根据错误日志,我可以看到$ _POST ['g-recaptcha-response']是一个空值。但是,我目前不确定这是否是导致无法打开流错误之前出现的“启用加密失败”错误的原因。我也不确定为什么错误日志中会出现“操作成功完成”的警告。

服务器在Windows IIS服务器上运行PHP 5.6。

0 个答案:

没有答案