2010-08-03 18 views
8

我的codeigniter應用程序中的模型出現問題。我收到發送標題信息的錯誤。基本上,codeigniter抱怨我的註冊模型發送標題信息之前。這怎麼可能?我認爲模型只用於保存數據庫查詢方法,僅此而已。有人能解釋我嗎?爲什麼我在codeigniter中出現「無法修改registration_model已經發送的頭信息頭」錯誤?

這是一個控制器的開始看起來像:

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')); 
} 
+0

在哪些文件是您使用的頭功能,控制器或查看? – Sarfraz 2010-08-03 09:00:32

+0

我在視圖Sarfaz中擁有所有標題信息。我應該提到我需要重寫我的registration_model.php,因爲當我試圖將它上傳到服務器時我丟失了它(當時我失去了連接)並且沒有做任何備份(我知道一個可怕的罪名程序員不應該提交)。但至少我知道我的模型文件有問題。 – Pavel 2010-08-03 09:05:56

+0

你在php-tags之前/之後檢查了空白嗎? – teemitzitrone 2010-08-03 09:12:36

回答

28

注意,標題前應別的發送。確保在標題函數之前沒有代碼/ html或空格/縮進,並且在您的視圖中第一次打開php標記<?php以及結束標記?>之前沒有任何內容。

+0

感謝Sarfraz提示 - 我在控制器類之前放了一個空格和一個註釋。刪除後,一切恢復正常。 – Pavel 2010-08-03 09:27:05

+0

是的,在<?php之前有一個空格!謝謝! – 2013-02-04 14:33:52

+0

一個簡單的白色空間擰了我30分鐘;(謝謝你的提示@Sarfraz – 2013-07-06 09:04:06

4

其實一些主機提供商他們使用PHP header();重定向我們的網站,所以在那種服務器,如果我們使用PHP header()它會給出錯誤。我想是這樣。在代碼點火器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> 
'; 

我不知道這是上述問題的正確解決方案,但我使用它,它的工作100%。感謝您!

23

將此ob_start();您的應用程序目錄下的的index.php第一行是這樣的:

<?php 
ob_start(); 
/* 
*--------------------------------------------------------------- 
* APPLICATION ENVIRONMENT 
*--------------------------------------------------------------- 
+0

你告訴我爲什麼這在我的情況下工作?1 btw – asprin 2015-01-13 09:29:52

+0

這工作**但爲什麼?? **,可以有人解釋? – CodeGodie 2015-04-01 21:29:43

+0

根據@Sarfraz答案,ob_start();將打開輸出緩衝。主動沒有輸出從腳本發送(除了標題) – Gery 2016-05-16 13:02:24

相關問題