« 2005年02月09日 | メイン | 2005年02月18日 »
2005年02月10日
データをPOSTで送信
値を他のページに渡す場合 GET と POST の2つの通信方式がある。
GETは、アドレスに追記して渡すほうほうで、たとえば abc.php?a=b などとなる。
POSTは、この値を隠蔽して渡す方式で、掲示板などで良く使われている。書き込みの投稿がそれにある。
POSTのもう一つのメリットとしては、文字列の長さの制限をあまり考えないでよいことだ。
非常に長いデータを渡す場合、GETでは文字数オーバーとなるので、POSTで渡さなければならない。
他のページを読み込む場合、標準関数ではGETとなる。
しかし、セキュリティーやその他の関係上でPOSTでデータを渡して読みこまなければならないこともある。
その場合は、拡張ライブラリ pear に含まれる HTTP_Request 関数を使うことになる。
pearについては、http://php.webmeister-jp.com/archives/2005/02/_pear.php であつかっている。
HTTP_RequestでPOST送信する方法は以下となる。
$req =&new HTTP_Request("http://www.***.com/abc.php");
$req->setMethod(HTTP_REQUEST_METHOD_POST);
$req->addPostData("name1", $data1);
$req->addPostData("name2", $data2);
if (!PEAR::isError($req->sendRequest())) {
$res = $req->getResponseBody();
} else {
$res = "送信失敗";
}
上記の場合、 name1=$data1、name2=$data2 としてhttp://www.***.com/abc.php へPOST送信される。
$resには結果(ページ内容)が格納される。