最终,我尝试设置一个简单的网站,其中包含使用基本身份验证启动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
我已尝试过TRUE
,true
,"true"
和1
,并且每次都遇到同样的错误。
我在DreamHost上的PHP v7.0.14上运行它。看起来这些选项自v7.0.7开始可用,它们可能在DreamHost的PHP中不可用吗?如果是这样的话,有没有办法不验证证书,除了在其他地方运行它?
答案 0 :(得分:1)
你错过了一个下划线:
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
或者甚至更好,只需转到https://letsencrypt.org/并免费获得真正的证书。