3

リダイレクト後に削除されるセッションの CodeIgniters 実装の使用に問題があるため、通常の PHP セッションに戻しています。

session_start();すべてのコントローラーコンストラクターに追加せずにすべてのページで呼び出すと仮定すると、最適な場所はどこでしょうか?

メインの index.php の一番上に配置しても問題ないと思いますが、これを実行しても何も壊れないことを確認したいですか、それとも配置するより良い/標準的な場所があるかどうかを確認したいですか?

4

3 に答える 3

7

これが、アプリケーション全体のコードを含む拡張コントローラーを常に使用する理由です。

codeigniter コントローラーを拡張するには、このコードを MY_Controller.php というファイルに配置し、core フォルダーに保存します。

class MY_Controller extends CI_Controller
{
    public function __construct()
    {
        parent::__construct();
        session_start();
    }
}

このソリューションを使用する場合、すべてのコントローラーで MY_Controller を拡張する必要があります。

コア システム クラスの作成

于 2013-01-02T15:49:21.340 に答える
3

簡単に入れることができますindex.php。これは codeigniter アプリケーションへのエントリ ポイントであり、すべてのリクエストで呼び出されます。

これは一般的に推奨されません。なぜなら、codeigniter のバージョンをアップグレードするときに、カスタマイズを index.php にコピーすることを覚えておく必要があるからです。

index.php の代わりに、prerequestフックを使用できます

于 2013-01-02T15:01:06.957 に答える