3

コントローラーでHTTPメソッド別名リクエストメソッド(get / post / put ...)を知るためのCodeigniterの組み込み機能はありますか? 私は次のようなものだと思います:

if ( ! $this->input->is_post() ) show_error('Access forbidden', 403 );

後入力が必要な関数でGETメソッドへのアクセスを禁止したい。この単純なことについて、ドキュメントで何かを見つけることができません。

4

3 に答える 3

5

これを試して:

if($_SERVER['REQUEST_METHOD'] == 'GET'){
    exit();
}
//continue with your code. it's a POST.
于 2013-09-01T17:33:04.293 に答える
1

このように試すことができます:

if($this->input->server('REQUEST_METHOD') == 'POST'){
    show_error('Access forbidden', 403 );
}
于 2013-09-01T18:14:32.007 に答える
1

通常の状況では、次のように使用できます

if($_SERVER['REQUEST_METHOD'] == 'GET')
//abort

または、このための CI ヘルパーを作成できます。

投稿を防止したい場合は、if 条件で文字列 'POST' を使用します。これはまっすぐです。

不審な状況下で投稿を阻止したい場合(リクエストメソッドが操作できると思われる場合)

注:私は以下を使用していません。これは私の即時のアイデアです。http 生入力データをチェックします。

$rawdata = file_get_contents('php://input');

strlen がゼロより大きいかどうかを確認するか、ここにロジックを追加できます。

codeigniter のみを使用してこれを解決しようとしていないと仮定します

于 2013-09-01T16:47:56.933 に答える