[PHP-users 11632] Re: CURLを用いてHTTPS 通信
   
    D.Yamashita
     
    php-users@php.gr.jp
       
    Thu, 21 Nov 2002 00:49:47 +0900
    
    
  
山下と申します。
> curlを用いてhttps://〜のデータを取得したいと考えています。
> そこで、過去ログの6456などを参考にソースを書いてみました。
> しかし、実行したところ、結果が何も表示されません。
> エラーメッセージも表示されません。
>
> 普通のhttp://〜のファイルだとちゃんとデータを取得することが出来ました。
>
> これはソースの問題でしょうか、それとも環境の問題でしょうか?
> それとも何か別の原因があるのでしょうか?
> 何かアドバイスをいただければ幸いです。
ソースを以下のように変更して、結果をファイルに書き込むようにして
みてはいかがでしょうか?
$ch = curl_init("https://www.secure.com/foo.php");
curl_setopt ($ch, CURLOPT_POSTFIELDS, "var1=aaa&var2=bbb");
curl_setopt ($ch, CURLOPT_POST, 1);
curl_setopt ($ch, CURLOPT_SSLVERSION,3);
curl_setopt ($ch, CURLOPT_TIMEOUT, 120);
$tmpfile = tempnam ('/tmp', 'phptools');
if(!($fp = fopen ($tmpfile, 'w')))
  ・・・エラー処理・・・
else {
    curl_setopt ($ch, CURLOPT_FILE, $fp);
    curl_exec ($ch);
    curl_close ($ch);
    fclose ($fp);
    $fp = fopen ($tmpfile, 'r');
    $results .= fread ($fp, filesize ($tmpfile));
    fclose ($fp);
    unlink ($tmpfile);
}
あとは、
    curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla・・・")
という感じでUSERAGENTをちゃんと指定してみるとか。
参考までに、全くもって個人のページですが、
http://www.homedjr.org/index.html
に、HTTPSにポストするPHPプログラムがありますよ。
うちではちゃんとHTTPSへのポストができています。
PHP 4.1.2 (Debian Package)
libcurl 7.9.5 (OpenSSL 0.9.6g)
では。
国国国国国国国国国国国国国国国国国国国国国国国国
大阪大学大学院 工学部研究科 情報システム工学専攻
                        山 下  大 介
  Mail: yamasan@ise.eng.osaka-u.ac.jp
国国国国国国国国国国国国国国国国国国国国国国国国