3

Webサイトの一部のphpページでHTTPGETメソッドを無効にしたい。PHPコードでそれを行うことはできますか?

a.htmlaction.phpの2つのページがあるとします。これで、a.htmlは通常のページになり、どの方法でもアクセスでき、その情報がaction.phpに送信されます。ただし、action.phpに送信される情報は、postメソッドを介してのみ送信できるようにしたいと思います。

4

3 に答える 3

9

Method Not Allowed ヘッダーをいくつかの説明テキストと共に送信します (できれば、以下の例よりもわかりやすく、より便利なもの)。

通常のページで処理を続行しないように、後で終了します。

if ($_SERVER['REQUEST_METHOD'] === 'GET') {
  header('Method Not Allowed', true, 405);
  echo "GET method requests are not accepted for this resource";
  exit;
}

GET をブラック リストに登録する代わりに、ホワイト リストに登録する (および、受け入れるメソッドがないかどうかをテストする) ことを検討することをお勧めします。(PUT、DELETEなども必要ない場合があるため)。

于 2012-06-01T08:13:40.157 に答える
1

以下のコードを最初に入れてください。

if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
  header('Location: a.html');
  exit;
}
于 2012-06-01T08:12:02.903 に答える
0

現在のメソッドを読み取り、GETの場合はユーザーをリダイレクトできます。

于 2012-06-01T08:12:16.787 に答える