3

我创建了一个进程,让我登录我的#########.com 帐户。当我把它放在我的 FTP 上时,它就像一个魅力。

这是问题

我在 localhost:8080 上的机器(easyPHP)上设置了 apache 本地服务器。我还在我的机器上设置了一个 IIS 服务器的端口 --> localhost:80。

我的 cURL 请求不起作用。这是我的代码:

$lien = 'https://#########.com/login';
$postfields = array( 
    'username' => 'xxx',
    'password' => 'xxx'
);


$path_cookie = 'connexion.txt';
if (!file_exists(realpath($path_cookie))) touch($path_cookie);

$curl = curl_init();

curl_setopt($curl, CURLOPT_URL, $lien);
curl_setopt($curl, CURLOPT_COOKIESESSION, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $postfields);
curl_setopt($curl, CURLOPT_COOKIEJAR, realpath($path_cookie));

$return = curl_exec($curl);
echo($return);
echo 'error:' . curl_error($curl);
curl_close($curl);
}

首先:是的,我的服务器上安装了 cURL,我在 apache 服务器和 IIS 服务器之间做了一些其他 cURL 请求,一切正常。

其次:文件“connexion.txt”创建良好,但为空。

第三: ($return) 的回声没有响应,而在我的服务器上,响应是“对象移至此处。

第四:是的,我读过这个主题,但对我没有多大帮助..

卷曲不工作

最后:当我尝试调试 cURL 请求时,错误是:

错误:SSL证书问题:无法获取本地颁发者证书

任何人都可以帮助我吗?我会留在这里回答评论/测试/调试/回答等。

谢谢 !

4

2 回答 2

5

您很可能根本没有使用证书,因此请使用 http 或尝试使用

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);

于 2013-09-25T15:20:17.973 回答
3

将“CURLOPT_SSL_VERIFYHOST”设置为 false 不是一个好习惯。

我建议您下载 CA 根证书包并告诉 PHP 在哪里可以找到它。

  1. 你可以在这里找到下载
  2. 下载 .pem 并将其保存在您的 PHP 安装可以访问的位置。
  3. 添加到您的 php.ini 文件位置:curl.cainfo="C:\Xamp\php\cacert.pem"
  4. 重启你的服务器]

工作完成,安全。


字体:https ://snippets.webaware.com.au/howto/stop-turning-off-curlopt_ssl_verifypeer-and-fix-your-php-config/

于 2016-07-12T06:55:03.953 回答