2012-04-17 1 views
22

私はデモcodeigniterプロジェクトのコントローラの上にこの小さなコードを気付き、それが何をしたのか、それを使用すべきかどうか疑問に思いました。Codeigniterはベースパスまたは出口を定義します

defined('BASEPATH') OR exit('No direct script access allowed'); 

また、どこで使用する必要がありますか?コントローラ?モデル?どちらも?

答えて

41

codeigniterフレームワークを有効にするためには、www.blahblah.com/index.php/paramsでアクセスする必要があります。 index.phpを最初に実行すると、フレームワークがアクティブになり、さまざまなクラスやその他のものがPHPを通じて実行されます。次に、フレームワークはurlのパラメータを調べ、特定のコントローラをアクティブにします。このコード行は、フレームワークが正しく起動され、ユーザーがWebサーバー上で単一のphpファイルを実行しようとしていないことを確認します。そのPHPファイルは、フレームワーク内のクラスがすでに宣言されていることを前提としているため、コントローラファイルを単独で実行すると惨めに失敗し、セキュリティ違反の可能性があります。直接アクセスは許可されません。

+4

+1かなりのスポットがあります。また、ユニットテストに苦労することにも注意しなければならない。 – AlienWebguy

+0

オハイオ州いいえ、コードのこのビットもモデルの上にまたはコントローラだけに属しますか?ありがとう –

+1

あなたはCIの方法を行っている場合、それはCIのインストール内のほぼすべてのスクリプトに属しています。しかし、AlienWebGuyさんのテストに関するコメントに注意してください... – rjz

関連する問題