人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

phpで、submitボタンを押さずにpost送信したいと考えております。
目的は、会員登録した際に同時にメルマガASPの購読登録をしてもらうためです。
(規約面の問題はクリアしています)

そこで下記のURLを見つけました。
http://www.phppro.jp/news/228
しかし、よく意味がわかりません。。

$url, $data, $optional_headersそれぞれ具体的に何を書けばよいのでしょうか?


●質問者: にらたま
●カテゴリ:コンピュータ インターネット
✍キーワード:ASP PHP URL クリア ボタン
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● pahoo
●35ポイント
$url
POST 送信先の URL。FORMタグの action に相当する URL を記述します。
$data
stream_context_create関数の content 要素に渡すパラメータ、すなわち POST 変数の中身を記述します。
$optional_headers
stream_context_create関数の header 要素に渡すパラメータ、たとえば cookie などを記述します。ご質問の要件では null のままでよろしいかと存じます。

content 要素に渡すパラメータについては、http_build_query関数を使って作成します。

たとえば、'http://www.hoge.com/hogehoge.cgi' に対して

$_POST['hoge1'] = 'hoge';

$_POST['hoge2'] = 'hogehoge';

を渡す場合には、下記のように記述します。

$url = 'http://www.hoge.com/hogehoge.cgi';
$data = http_build_query(array('hoge1' => 'hoge', 'hoge2' => 'hogehoge'));
$res = do_post_request($url, $data, null);
◎質問者からの返答

ありがとうございます!

これで大丈夫・・と思いきや、ASP側で蹴られてしまいました。

直接のアクセスを認めていないようです。

$optional_headersをいじれば解決できますでしょうか?


2 ● pahoo
●35ポイント

直接のアクセスを認めていないようです。

$optional_headersをいじれば解決できますでしょうか?

ASPの仕様が分からないと何とも言えませんが、こういうケースでは、セッションを張っていたり、HTTP Referer をチェックしていることが多いですね。そうなると、ご質問の http_build_query 関数だけでは対処できません。


「規約面の問題はクリアしています」とのことなので、ASP管理者にシステム仕様を確認してください。

◎質問者からの返答

それはそうですね。ご丁寧にありがとうございました!

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ