[PHP-users 5328] cURLのPOSTFILEDSに関して

PHP-ML User APTECH php-users@php.gr.jp
Sat, 09 Feb 2002 22:01:44 +0900


関口です。

その後のcurlについてですが、RedHat7.2の環境でテストしてみました。
RedHat7.2では、curlもRPM化されており、何も問題なくcurlが使えました。

なお、TurboLinuxServer7ですが、TLJのサイトにRPMSにlibtool-1.4
(未保証)が有りましたので、試しにそれを使い buildconf,makeを
行いましたところ、同様にcurlが使えるようになり色々テストをしています。

その中で、連想配列に値をセットしてフォームにPOSTするスクリプトを
試してみましたが、値が相手のサイトに渡らず、$dataがブランクで
帰ってきてしまいます。(連想配列では渡せないのでしょうか?)

<?php
$ch  = curl_init('http://www.test.com/test.php');
$submit = array(  "name" => "tanaka hanako",
                  "email" => "email@test.com",
                  "comments" => "test comments");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $submit);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$data = curl_exec( $ch );
echo $data;
?>

そこで、次のように定数で渡すと正常に値が渡って結果が返ってきます。
curl_setopt($ch, CURLOPT_POSTFIELDS, 
'name=tanaka&email=email@test.com&comments=test comments');

しかし戻りの$dataの先頭には'tanakaemail@test.comtest comments'と
渡した内容が付いてきてしまいます。

渡すフィールドが1つであれば戻りには内容が含まれないのですが
これは仕様なのでしょうか?

度々で申し訳ございませんが、ご教示いただけませんでしょうか。

-- 
SEKIGUCHI Aptech inc.
PHP ML BOX
mailto:phpml@aptech.co.jp