場合によっては、POST メソッドを使用してフォームでデータを送信するシステム (古いシステム) を確認していますが、get を使用しているかのようにパラメーターも URL に送信します。
このようなもの:
echo "\n<FORM METHOD='POST' NAME='onegroup' ACTION='menu.php?sesion=".$sesion."' >
<INPUT TYPE='HIDDEN' NAME='sesion' VALUE='".$sesion."'>
<INPUT TYPE='HIDDEN' NAME='index_login' VALUE='1'>
[...]
</FORM>\n";
(注、sesion
これはタイプミスではなく、スペイン語で「セッション」という単語です)
" sesion
" パラメータが URL と入力フィールドの両方から送信されるため、'session' 変数が$_POST
配列と配列の両方で受信され$_GET
ます。
なぜこれが必要なのですか?そのままにしておく必要がありますか?$_POST
または、URLからそれを外して、データに頼ることができますか?
この回答のコメントを読みましたが、GET と POST の両方からデータを送信することは完全に可能であり、有効です (ただし、メソッド自体は GET または POST (またはその他) のいずれかですが、この場合は POST です。それが方法であるためです)。フォームが定義します)。この特定のケースでは、sesion
get (url による) リクエストと post リクエストの両方で同じ変数 (つまり、同じ値) を送信する必要があるのはなぜでしょうか?
$_POST
私の menu.php スクリプトでは、 と の両方を読み取ることができ$_GET
、それぞれに変数の「バージョン」がありますが、たまたま同じです。$_POST の代わりに、または配列を$_GET
読み取ると、$_REQUEST
すべての変数がまとめて取得されますが、複製されたもの ( sesion
) の場合は、投稿バージョンが優先されます。
もう 1 つのことは、「Register Globals」オプションに依存しているため、明示的に$_GET["sesion"]
or $_POST["sesion"]
(または$_REQUEST[]
) を使用する代わりに、どこでも '$session' を使用してその情報を使用することです (リクエスト内の他の変数についても同じです)。 )。繰り返しますが、いじってみると、その場合、変数の POST バージョンも優先されることがわかります。しかし、私はいつもそれに頼ることができますか?
post メソッドを使用して、URL からパラメーターを削除する必要がありますか?
すべてを郵送する代わりに、なぜ彼らはこれをしたいのでしょうか? 私が見たように、特に両方が同じ値を持っているため、両方を使用する理由はありません。そうでない場合は、使用するバージョンを選択するだけで済みますが、そうではありません。それが単にそこに残され、決して「修正」されていないということは他に考えられません。
POST リクエストと GET リクエストの両方で、特に両方で同じ変数名を使用して、誰かがそのようなシナリオを使用する必要がある「実際の」例は何ですか?
ありがとう。