- 締切済み
POSTでQueryを投げるには?
PHPで外部(別サーバ)のCGIにクエリーを投げることは出来ますか?
- みんなの回答 (5)
- 専門家の回答
みんなの回答
ASPの場合、他のサーバーにクエリーを投げるときは、COMとMTSを経由します。こうすることでGETでの送信を回避します。 COMとは、ネットワーク関連のシステムで今メジャーなDLL仕様のことです。そしてMTSは、メッセージ・トランスファー・サービスというような感じの言葉の略称で、サーバー間で簡単にCOMを相互呼び出ししたりするプログラムのことです。 しかし、COMとかMTSとか、そういうのはCGIの知識のほかに、サーバー/クライアントシステムに関する詳しい知識も必要ですし、設備にけっこうお金がかかったりします。 もしそれだけの設備投資をしてでもやらなければならない、ということであれば可能です。それにたしか、COMはPHPでもできないことはないと思います。
残念ですが、裏技に関しては分からないです(^_^; COMとかASPとかコールドフュージョンを使うとか、そういう方向でいくのでしたら別ですけど……。 お金がかかりますよ(^_^; (←PHPについては素人だけどASPとかに付いてはプロ)
補足見ました。 よっぽど変な裏技とか使えば可能なのかも知れませんが、それよりはGETを使った方がいいです。たかだかそれだけのために苦労するだけの価値があるとは思えないので(^_^;
補足
やっぱり不可能なんでしょうか? 可能か不可能かだけでも知りたいのですが...。 また“裏技”なるものがあるならそれについても情報をいただけると嬉しいです。 こうなってくると、可能性があるかぎり端から一つずつ潰してゆきたいタイプなんです。(性格暗い?)
- selenity
- ベストアンサー率41% (324/772)
どのような状態で、何をしたいのかが不明なので推測で回答します。 単純に、他のサーバ上のCGIへパラメータを渡したいのであれば、 現在表示している<FORM ACTION="xxx.cgi" METHOD="XXX">で、 ACTIONの設定で「xxx.cgi」となっているところを 「http://xxx.demohost.net/cgi/bin/xxxx.cgi」とURLの形で 記述してあげれば良いと思います。 または、すでに、submit後のphpファイルの中なのであれば、 Header("Location: http://xxx.demohost.net/cgi-bin/xxxx.cgi?param1=x¶m2=y"); と記述すれば、良いと思います。 ただし、この場合は、Header(...);より前にecho等の出力をしてはいけなかったと思います。
補足
他サーバで運用中の集計システムに対しての新たなインターフェイスを設計しているのですが、既存のシステムがQueryをPOST経由で取得する仕組みになっているんです。 今回設計中のものはPHPを使って開発しているので、パラメータ引渡しのところで行き詰まってここでHELP!と言うわけです。 いったんフォーム生成してクライアント側に送りクライアント側からSUBMITさせるか、CGIを挟んでパラメータを飛ばすかしか無いんでしょうか? できればPHPだけでスマートに作りたいんですが...。
PHPは専門外なのですが、基本的にPOSTメソッドは同一サーバー内にあるCGIにしかクエリーを投げることはできないので、GETメソッドで投げるしかないと思います。
補足
クライアント側からFORMをSUBMITするように、サーバ側から第3のサーバに対してPOSTでQueryを投げることは不可能なんですか?
補足
リアクションが遅くなって失礼しました。 ASPでは可能なんですか? PHPでもできたらいいのに。。。 大き目のパラメータを送るときや ユーザに見えない形でパラメータを送るときなどは どうしてもPOSTメソッドで送りたいんですよね。。