0

フォーム投稿を使用してデータを他のページに送信するのではなく、html リンク ($_GET) メソッドを使用することをお勧めします。

リストされたサイトのすべてのユーザーを含むページusers.phpがある場合、特定のユーザーに関する詳細をリストするuser_details.phpをページングしたいとします-私はそれを2つの方法で行うことができます。

<a href="user_details.php?user_id=752">Details</a>

また

<form action="user_details.php" method="post">
<input type="hidden" name="user_id" value="742" />
<input type="button" name="nothing" value="User Details" />
</form>

または、$_POSTデータを$ _SESSIONに入れるたびにコードをロードしてから、ページuser_details.php$_SESSIONのuser_idを確認することで、さらに優れたセキュリティ対策を行うことができますか?

編集: このサイトでは、何かを見る前に認証が必要です。管理者の合計で約10ページしかないので、ブックマークする必要はないと思います.

4

2 に答える 2

1

Web アプリケーションの場合、私にとっての基本的なガイドラインは次のとおりです。

  • データを変更しない場合は GET を使用します (読み取りのみ)
  • データを変更する場合は POST を使用します (WRITE/UPDATE のみ)
  • 変数の結果タイプを返すために一部のデータを検証する必要がある場合 (つまり、ログイン、連絡フォームなど、送信されるデータに基づいて、返されるページの動作が異なる可能性がある場合) には、POST を使用します。

一般的な Web アプリケーションの場合、データ構成でページ/リソースをナビゲートできるようにするかどうかについても考慮する必要があります。つまり、誰かがそのページをブックマークして、まったく同じデータ表現 (データ読み取り) を表示できるようにしたいですか? その場合は、GET を使用してください。

これは、通常、次の HTTP アクションがサポートされている REST パラダイムにもうまく適合します。

  • GET -> 指定されたリソースを読み取る
  • POST -> データ リソースに新しいデータ要素を作成する
  • PUT -> リソースの既存のデータ要素を更新
  • DELETE -> リソースの既存のデータ要素を削除します
于 2013-10-02T22:51:43.947 に答える
0

これに $_GET を使用する主な利点の 1 つは、ユーザーがフォームへの入力を強制するのではなく、URL をブックマークしてリンクできることです。$_POST を使用する場合、これは不可能です。

ただし、これにクエリ文字列を使用することは、URL に関しては最もユーザー フレンドリーではありません。Wordpress や Stackoverflow がユーザー ページに使用するような、ある種のきれいな URL 構造を使用することをお勧めします。これは、サーバー上の .htaccess ファイルを編集することで実行できます。

于 2013-10-02T22:48:47.163 に答える