1

ここでは少しばかげているように聞こえるかもしれません。しかし、github からスクリプトをダウンロードしたところ、そのフォーム送信の 1 つが、単一の php ファイルではなく、フォルダー/ディレクトリへのフォーム入力を実際に参照していることに気付きました。

ここでの私の質問は、これが事実である場合、フォルダー自体内のすべてのスクリプトが $_POST フォームの入力結果を取得できるということですか?

4

2 に答える 2

4

そのフォーム送信は、実際にはフォーム入力をフォルダー/ディレクトリに参照します

HTTP URI では、そのようなことはありません。すべての URI はリソースを指します。そのリソースに応答する方法を決定するのはサーバー次第です。

URI 内のディレクトリのように見えるものは、ファイル システム上の実際のディレクトリにマップされる場合があります。Web サーバーは通常、DirectoryIndexディレクティブのようなものを使用してデフォルト ファイルを使用します。

上のいくつかのレベルでファイルにマップし、それによって処理される場合があります。つまり、URI から読み取り、それに対して何かを実行しますhttp://example.com/foo.php/bar/baz/foo.php/bar/baz/

内部的に別のスクリプトにマップする明示的なマッピング (ScriptAliasディレクティブなど) がある場合があります。

正規表現を使用して別のものにマップする (おそらく「ディレクトリ」を別のクエリ文字列パラメーターに分割する) プログラムによるマッピング (mod_rewrite など) がある場合があります。

他にも多くの可能性があります。

ここでの私の質問は、これが事実である場合、フォルダー自体内のすべてのスクリプトが $_POST フォームの入力結果を取得できるということですか?

理論的には、ファイル システム上のディレクトリ内のすべてのスクリプトに POST 要求が渡され、複合応答が返されるようにサーバーを構成することは可能です。私は誰もそれを試している(または試してみたい)人を見たことがありません。上記の説明のいずれかがはるかに可能性があります。

于 2012-09-16T14:04:18.200 に答える
3

あなたが次のようなことについて話していると仮定します:

<form method='post' action='some/directory'>

Web サーバーによってディレクトリ インデックスとして提供されるファイル (例: index.php) がフォーム ポストを受信し、入力を処理することが期待されます。したがって、フォームをディレクトリに投稿するのではなく、ディレクトリにアクセスしたときに Web サーバーが実行する既定のファイルに投稿します。

タグのaction=属性は、<form>相対または絶対 URI である必要があります。実際の既存のファイルを指している必要はありません。ディレクトリ インデックス ルール、書き換えルールなどに基づいて実行するスクリプトを決定するのは、Web サーバー次第です。

于 2012-09-16T13:57:59.800 に答える