0

私を夢中にさせる何かに出くわしました。私を助けてください :(

グローバルなヘッダーとフッターを作成するために、CI_Loader コアを拡張しようとしています。なんらかの理由で、拡張するとエラーが発生します。

拡張コード:

class MY_Loader extends CI_Loader
{
    function __construct()
    {
        // i need the codeigniter super-object 
        // in all the functions
        $CI =& get_instance();
    }

    public function load_header()
    {
        echo 'header';
    }

    public function load_footer()
    {
        echo 'footer';
    }

}

私が現在得るエラー

要求されたファイルを読み込めません: helpers/url_helper.php

更新: コードの変更 - 新しいエラー

class MY_Loader extends CI_Loader
{

    function __construct() {
        parent::__construct();

        $CI =& get_instance();
        $CI->load = $this;
    }

    public function load_header()
    {
        echo 'header';
    }

    public function load_footer()
    {
        echo 'footer';
    }

}

今、ヘッダーでエラーが発生しました

PHP エラーが発生しました

重大度: 警告

メッセージ: ヘッダー情報を変更できません - ヘッダーは既に送信されています (出力は /mounted-storage/home75b/sub007/sc43190-SREL/gogetmilk.com/application/core/MY_Loader.php:1 で開始)

ファイル名: libraries/Session.php

ライン番号: 672

更新#2 私はそれを修正する正しい方法ではありません。しかし、その作業。

libraries/Session.php の 672 行目で Cookie を設定

ヘッダーが既に送信されているかどうかを確認するテストを追加しました。

    if (! headers_sent() )
    {
        setcookie(
            $this->sess_cookie_name,
            $cookie_data,
            $expire,
            $this->cookie_path,
            $this->cookie_domain,
            $this->cookie_secure
        );           
    }

正常に動作しません。何かを印刷する前、印刷した後、ビュー内、ビューを読み込んだ後などにセッションを作成しました..

誰かがこれが問題を引き起こすと信じていますか?

問題は解決し、codeigniter とは関係ありませんでした。下部の回答を参照してください。

4

3 に答える 3

1

現在取得しているエラー 要求されたファイルを読み込めません:

helpers/url_helper.php

URL ヘルパーを読み込んでいないため、このエラーが発生しています。URLヘルパー関数の呼び出しが表示されないため、別のファイルでエラーがスローされていると想定しています...追加してみてください

$this->load->helper('url');

関連するファイルに入れるか、単にロードしますconfig/autoload.php

はい、parent::__construct(); を使用します。ブロンカが答えたように

于 2012-06-18T12:28:55.607 に答える
0

コンストラクトは親のコンストラクトを呼び出す必要があります

function __construct()
{
    parent::__construct();
    // i need the codeigniter super-object 
    // in all the functions

    $CI =& get_instance();
}
于 2012-06-18T11:55:16.857 に答える
0

問題が解決しました。それは CodeIgniter の問題でさえありませんでした。

ファイルの先頭にある不可視の BOM でした。このアプリケーションを使用して、このバイトを削除しました: http://sourceforge.net/projects/bomremover/

皆さん、助けてくれてありがとう:)

于 2012-06-19T09:54:06.270 に答える