我遇到了让我疯狂的事情。请帮帮我:(
我尝试按顺序扩展CI_Loader Core以创建全局页眉和页脚。 由于某种原因,扩展会导致错误。
扩展代码:
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';
}
}
我目前得到的错误
Unable to load the requested file: 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';
}
}
现在我收到标题
的错误A PHP Error was encountered Severity: Warning Message: Cannot modify header information - headers already sent by (output started at /mounted-storage/home75b/sub007/sc43190-SREL/gogetmilk.com/application/core/MY_Loader.php:1) Filename: libraries/Session.php Line Number: 672
更新#2 我不是解决问题的正确方法。但它的工作。
library / 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无关。见底部的答案。
答案 0 :(得分:1)
我当前得到的错误无法加载请求的文件:
助手/ url_helper.php
您收到此错误是因为您未加载URL帮助程序。我没有看到任何URL助手函数的调用,所以我假设错误被抛入另一个文件...尝试添加
$this->load->helper('url');
在相关文件中或只是将其加载到config/autoload.php
,是的,使用parent :: __ construct();正如Broncha的回答
答案 1 :(得分:0)
你的构造应该调用父的构造
function __construct()
{
parent::__construct();
// i need the codeigniter super-object
// in all the functions
$CI =& get_instance();
}
答案 2 :(得分:0)
问题解决了。它甚至不是CodeIgniter问题。
这是文件开头的一个隐形物料清单。 使用此应用程序删除此字节:http://sourceforge.net/projects/bomremover/
感谢大家的帮助:)