2011-02-25 48 views
4

我有一個CI應用程序,它具有auth控制器和switchuser功能。基本上它只是從URI獲取一個ID,從ID中獲取一些用戶數據,分配一些會話數據然後加載一個視圖。Codeigniter:標題已發送錯誤

function switch_user(){ 
    if(!$this->auth_lib->is_admin()){ 
     $this->session->set_flashdata('status', 'You need to be an administrator to access this page.'); 
     redirect('auth/login'); 
    } 

    if($id = $this->uri->segment(3)): 
      $this->load->model('auth_model', 'auth'); 
      $username = $this->auth->get_username($id)->account_name; 
      $this->session->set_userdata(array('at_id' => $id, 'username' => $username)); 
      $this->session->set_flashdata('status','User switched.'); 
    endif; 
    $this->load->model('clients_model', 'clients'); 
    $data['users'] = $this->clients->get_at_clients(); 
    $this->load->view('auth/switch', $data); 
} 

,我發現了以下錯誤:

Message: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\cp\application\controllers\auth.php:130) 

130線爲$ username = $這個 - > auth-> get_username($ ID) - > ACCOUNT_NAME;

這裏是模型功能:

function get_username($at_id){ 
    $portal = $this->load->database('warehouse', TRUE); 
    $portal->select('account_name'); 
    $portal->where('account_id', $at_id); 
    $portal->from('wh_account'); 

    $query = $portal->get()->result(); 

    return $query[0]; 
} 

我不明白髮生了什麼。當我在本地運行代碼時,我不會收到錯誤。但是當我通過互聯網遠程運行時,我得到了這個頭文件錯誤。

任何人都可以幫助確定問題?

感謝,

比利

UPDATE

我實際上已經把周圍的var_dump的$用戶名= $這個 - > auth-> get_username($ ID) - > ACCOUNT_NAME; 線路導致錯誤。我不知道知道爲什麼,雖然:(

+0

你能證實你在本地啓用了錯誤報告嗎? – JohnP 2011-02-25 09:14:36

+0

你是否在'$ query'中得到結果? – HyderA 2011-02-25 09:24:13

+0

是的,它返回結果當我在本地運行時,用戶切換成功,新用戶名是正確添加到會話 – iamjonesy 2011-02-25 09:29:50

回答

8

我會檢查你有沒有結束PHP標籤在你的任何模型,控制器或庫 - 這往往會導致這種類型的錯誤

+0

感謝您的消化,只是檢查和所有結束標記在那裏:( – iamjonesy 2011-02-27 13:11:03

+0

@iamjonesy - 這是我的觀點有*不應該*是任何結束標記(這可能會導致空白輸出,這將觸發標題) – BrynJ 2011-02-27 17:19:41

+0

您好BrynJ道歉我實際上添加了不正確的代碼我有一個var_dump包裹這行$ username = $ this-> auth-> get_username($ id) - > account_name;一旦我刪除它的頭部錯誤停止了,我從代碼粘貼中刪除了它,因爲我認爲它不會有任何與錯誤有關的信息,爲什麼var_dump會導致錯誤信息? – iamjonesy 2011-02-28 12:17:52

1
//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> 
    '; 

Why I'm getting "cannot modify header information headers already sent by registration_model" error in codeigniter?

+0

我用了第二個替代方式,即JavaScript和它運作良好!比我試過的任何東西都多!謝謝 – 2012-11-02 08:40:22