1

PHP Curlを使用してpostメソッドで値を送信しようとしています。ただし、HTTPS ページでは機能しません。以下のコードを見直して、私が間違っていたことを確認してください。

$url = 'https://www.whoisxmlapi.com/user/create.php';
$fields = array(
                        'username' => urlencode("check123"),
                        'email' => urlencode("check123@gmail.com"),
                        '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);
4

2 に答える 2

2

コードに便利なエラー チェックを追加することから始めてください。

//execute post
$result = curl_exec($ch);

if( $result === false) {
    echo 'Curl error: ' . curl_error($ch);
}

そうすれば、おそらくあなた自身の問題を解決できるでしょう

于 2015-08-08T15:29:10.333 に答える
0

あなたが得たエラーを共有するか、このcurlオプションでテストしてください

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);

0: 共通名 (CN) 属性をチェックしない

1: 共通名属性が少なくとも存在することを確認します

2: 共通名が存在し、それがサーバーのホスト名と一致することを確認します

于 2015-08-08T15:29:33.503 に答える