Я пытаюсь передать значения методом post используя PHP Curl. Но это не работает на страницах HTTPS. Любое тело просмотрите мой код ниже и проверьте, что я сделал не так.
$url = 'https://www.whoisxmlapi.com/user/create.php';
$fields = array(
'username' => urlencode("check123"),
'email' => urlencode("[email protected]"),
'password' => urlencode("password"),
'password_confirmation' => urlencode("password"),
'firstname' => urlencode("firstname"),
'lastname' => urlencode("lastname"),
'organization' => urlencode("organization"),
'captcha' => urlencode("captcha")
);
//url-ify the data for the POST
foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&'; }
rtrim($fields_string, '&');
//open connection
$ch = curl_init();
//set the url, number of POST vars, POST data
curl_setopt($ch,CURLOPT_URL, $url);
curl_setopt($ch,CURLOPT_POST, count($fields));
curl_setopt($ch,CURLOPT_POSTFIELDS, $fields_string);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT ,3);
curl_setopt($ch,CURLOPT_TIMEOUT, 20);
//execute post
$result = curl_exec($ch);
//close connection
curl_close($ch);
Пожалуйста, начните с добавления некоторой полезной проверки ошибок в ваш код
//execute post
$result = curl_exec($ch);
if( $result === false) {
echo 'Curl error: ' . curl_error($ch);
}
Тогда вы, вероятно, сможете решить свою проблему
делитесь ошибками, которые вы получили,
или проверить с помощью этого варианта curl
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
0: не проверять атрибут общего имени (CN)
1: проверьте, что атрибут общего имени хотя бы существует
2. Убедитесь, что общее имя существует и соответствует имени хоста сервера.