2013-09-25 122 views
2

我创建一个进程,将我登录到我的帐户#########。com。当我把它放在我的FTP上时,它就像一个魅力。cURL请求在服务器上正常工作,但不会在我的本地主机上工作:8080

这就是问题

我有一个Apache本地服务器我的机器(的EasyPHP)在本地主机上设置:8080。 我也有一台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); 
} 

首先:是的,我有卷曲安装在我的服务器上,我做了我的Apache服务器和我的IIS服务器和一切之间的一些其他卷曲要求做工精细。

其次:文件“connexion.txt”很好地创建,但是空的。

三:的($返程)响应无回声,我的服务器上的响应是“对象搬到这里。”

第四:是的,我看这个话题,但没“T帮了我很多..

cURL not working

最后:当我尝试调试卷曲请求的错误是:

error:SSL certificate problem: unable to get local issuer certificate

谁能帮助我吗?我会留在这里回答评论/测试/调试/回答等。

谢谢!

+2

SSL使用自签名的证书,很可能或没有提供卷曲与相关的CA的东西,所以它可以验证证书。 –

回答

4

你最有可能不使用的证书都这样无论是使用HTTP或尝试使用

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

+0

非常感谢sebotro,它就像一个魅力! :) – Peter

2

这不是一个很好的做法,将“CURLOPT_SSL_VERIFYHOST”假的。

我推荐你下载CA根证书捆绑,并告诉PHP在哪里可以找到它。

  1. 你可以找到它download here
  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/

+1

最后一个很好的解决方案,而不禁用验证。谢谢! – enenen

相关问题