2013-02-04 59 views
0

當我在控制器中訪問錯誤的功能時,404錯誤頁面運行良好。但是,當我訪問像'http://example.com/model/detail/116'這樣的網址,其中116是錯誤的數字[不在數據庫中],我的404錯誤頁面無法正常工作。自定義404錯誤消息在codeigniter中不起作用

我有這樣的代碼在我的控制器:

public function detail() 
{ 
    $id['id_galeri'] = $this->uri->segment(3); 
    $detail = $this->app_model->getSelectedData("tbl_galeri",$id); 
    foreach($detail->result() as $d) 
    { 
     $bc['jdl'] = "View"; 
     $bc['id_galeri'] = $d->id_galeri; 
     $bc['nama'] = $d->nama; 
     $bc['foto'] = $d->foto; 
     $bc['deskripsi'] = $d->deskripsi; 
     $bc['stts_input'] = "deskripsi"; 
    } 

    if($this->uri->segment(3) == '' && $id['id_galeri'] == FALSE) 
    { 
     $segment_url = 0; 
    }else{ 
     if(!is_numeric($this->uri->segment(3)) || !is_string($this->uri->segment(3))){ 
     redirect('404'); 
     }else{ 
     $segment_url = $this->uri->segment(3); 
     } 
    } 

    $this->load->view('frontend/global/bg_top'); 
    $this->load->view('frontend/page/bg_view_model',$bc); 
    $this->load->view('frontend/global/bg_footer'); 
} 

對不起我的英文不好,請幫忙:-)謝謝 你..

回答

1

相反的:

redirect('404'); 

試使用CodeIgniter's native

show_404('page'); 

編輯

試試這個代碼,有點清理和檢查之前完成他們保存視圖使用。

public function detail() 
{ 
    $id['id_galeri'] = $this->uri->segment(3); 

    // Check if the supplied ID is numeric in the first place 
    if (! is_numeric($id['id_galeri'])) 
    { 
     show_404($this->uri->uri_string()); 
    } 

    // Get the data 
    $detail = $this->app_model->getSelectedData("tbl_galeri",$id); 

    // Check if any records returned 
    if (count($detail->result()) === 0) 
    { 
     show_404($this->uri->uri_string()); 
    } 

    foreach($detail->result() as $d) 
    { 
     $bc['jdl'] = "View"; 
     $bc['id_galeri'] = $d->id_galeri; 
     $bc['nama'] = $d->nama; 
     $bc['foto'] = $d->foto; 
     $bc['deskripsi'] = $d->deskripsi; 
     $bc['stts_input'] = "deskripsi"; 
    } 

    /** 
    * Here do whatever you want with the $segment_url which doesn't seem to be 
    * used in your code 
    */ 

    $this->load->view('frontend/global/bg_top'); 
    $this->load->view('frontend/page/bg_view_model',$bc); 
    $this->load->view('frontend/global/bg_footer'); 
} 
+0

不工作米哈爾:( – firewalls

+0

@firewalls好了,讓我們挖得更深一些。什麼'$ segment_url'?這似乎並沒有在任何地方除了分配使用本身? –

+0

謝謝你這麼多米哈爾!!它現在正在工作!! :-) – firewalls

相關問題