【发布时间】:2012-06-18 11:04:34
【问题描述】:
我遇到了一些让我发疯的事情。请帮帮我:(
我正在尝试扩展 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) 文件名:库/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 无关。请参阅底部的答案。
【问题讨论】:
-
顺便说一句,仅当我在服务器上运行代码时才会出现此错误。当我在本地主机(zendserver)上运行它时它可以工作..我猜它的错误显示设置..
-
你为什么要做 $CI->load = $this;在 __construct 函数的“更新”代码中??
-
因为这是Loader的扩展。现在我可以像这样加载视图和里面的东西:$this->view('view_file);
标签: codeigniter utf-8 loader extend byte-order-mark