33

私は PHP スクリプトを使用しており、リクエストが Ajax リクエストであるかどうかを確認したいと考えています。(基本的に、Ajax 呼び出し以外のスクリプトへの直接アクセスは許可しません。)

だから、私はメインファイルIS_AJAXのどこかに定義しています:index.php

define('IS_AJAX', 
       isset($_SERVER['HTTP_X_REQUESTED_WITH']) && 
       strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest');

そして、スクリプトの上部でそれを確認します:

if (!IS_AJAX) exit('No direct script access allowed');

私は CodeIgniter を初めて使用するので、次のことを知りたいです。

  • そのような組み込み機能はありますか?
  • それを行うよりエレガントな方法はありますか?
4

3 に答える 3

129

入力クラス$this->input->is_ajax_request()から使用できます:

if (!$this->input->is_ajax_request()) {
   exit('No direct script access allowed');
}
于 2012-07-27T11:50:50.190 に答える