0

カスタム HttpModule を使用して URL を書き換える IIS 6 で実行されているアプリケーションがあります。Context.RewritePath の宛先が .php ファイルである場合を除いて、これはうまく機能します (うまくいきました)。PHP ファイルは期待どおりに実行されますが、$_POST コレクションは空であり、書き換えられた URL に送信されたフォームにアクセスできません。Request.Form コレクションが正常であるため、.aspx ファイルに書き換える場合、問題は存在しません。

したがって、私の質問には 2 つの部分があります。 $_POST コレクションに値が入力されていないのはなぜですか? 書き換え後に .php $_POST コレクションが正しく設定されるようにする方法はありますか?

コードの方法で示すことはあまりありません。簡単なものがあります:

context.RewritePath(newPath);

HttpModule がリクエストの送信先を見つけたら。

編集: 興味深いことに、var_dump(file_get_contents('php://input'));PHP ファイル (ここで説明する方法) で行うと、フォームの内容が表示されます。したがって、データは PHP スクリプトに到達していますが、$_POST 配列には到達していません。

4

1 に答える 1

1

リダイレクトにより、POST アクションが GET アクションに変わります。つまり、最初に送信された POST パラメーターはすべて失われます。変数を渡すには、バックチャネル メソッド (セッションなど) を使用する必要があります。

于 2010-05-19T15:51:30.793 に答える