为什么我在codeigniter中收到"无法修改已由registration_model发送的头信息头"错误?

Pav*_*vel 11 php codeigniter

我的codeigniter应用程序中的模型有问题.我收到发送标头信息的错误.基本上,codeigniter抱怨我的注册模型先发送标题信息.这怎么可能?我认为模型仅用于保存数据库查询方法,仅此而已.有人可以解释一下吗?

这是控制器的开头如下:

function User()
{
    parent::Controller();
    $this->view_data['base_url'] = base_url();
    $this->load->model('User_registration_model');       // don't forget capital, it's important
    $this->load->model('user_map_model');                // don't forget capital, it's important
    $this->load->model('Tribe_model');                   // don't forget capital, it's important
    $this->load->library('email');                       // Loading email library
    $this->load->library('session');                     // sets up the session
    $this->load->library ('form_validation');            // Loading form validation library
    $this->load->helper(array('form', 'url'));  
}
Run Code Online (Sandbox Code Playgroud)

Sar*_*raz 31

请注意,标题应该发送之前别的.确保在头函数之前没有代码/ html甚至空格/缩进,并且在第一个打开php标记之前没有任何内容,也没有在视图中<?php结束标记?>.


Ger*_*ery 30

放置这个ob_start(); 在你的应用程序目录下的index.php的第一行,如下所示:

<?php
ob_start();
/*
 *---------------------------------------------------------------
 * APPLICATION ENVIRONMENT
 *---------------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)


小智 5

实际上一些主机提供商他们使用PHP header();来重定向我们的网站,所以在那种服务器中,如果我们使用PHP header(),它将给出错误.我认同.在Code Igniter redirect();中使用PHP header()来重定向我们的URL.那就是为什么它会给出这个错误!

因此唯一的解决方案是使用JavaScript来解决这个问题,我正在使用它!它运作良好.

//Your Code is for redirect
redirect('site/function1');

//Alternate Code for solve this issue
$url = 'site/function1';
echo'
<script>
window.location.href = "'.base_url().'index.php?/'.$url.'";
</script>
';
Run Code Online (Sandbox Code Playgroud)

我不知道这是上述问题的正确解决方案,但我正在使用它,它100%工作.感谢您!