似乎无法使CURLOPT_SSL_VERIFYPEER在PHP

时间:2017-03-23 17:48:52

标签: php curl

最终,我尝试设置一个简单的网站,其中包含使用基本身份验证启动cURL POST的链接。链接的href指向blah.php?dothething

在php文件中,我有

if ($_SERVER['QUERY_STRING'] == 'dothething') {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, "https://blah/");
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, "thing=1&do=true");
    curl_setopt($ch, CURLOPT_USERPWD, "user:pwd");
    curl_setopt($ch, CURLOPT_PIPEWAIT, TRUE); //POST takes about 10 sec to process
    curl_setopt($ch, CURLOPT_SSLVERIFYPEER, FALSE); //self-signed cert
    curl_exec($ch);
    curl_close($ch);
}

当我访问该链接时,我得到:

警告:curl_setopt()期望参数2为整数, blah.php 中的行 31 中给出的字符串
警告:curl_setopt()期望参数2为整数, blah.php 中的行 32

我已尝试过TRUEtrue"true"1,并且每次都遇到同样的错误。

我在DreamHost上的PHP v7.0.14上运行它。看起来这些选项自v7.0.7开始可用,它们可能在DreamHost的PHP中不可用吗?如果是这样的话,有没有办法不验证证书,除了在其他地方运行它?

1 个答案:

答案 0 :(得分:1)

你错过了一个下划线:

    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);

或者甚至更好,只需转到https://letsencrypt.org/并免费获得真正的证书。