[PHP-users 11632] Re: CURLを用いてHTTPS 通信

D.Yamashita php-users@php.gr.jp
2002年11月21日 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
国国国国国国国国国国国国国国国国国国国国国国国国

AltStyle によって変換されたページ (->オリジナル) /