2012-06-05 29 views
0

可能重复:
Cannot modify header information, headers already sent
Headers already sent by PHP不能更改头

我试图找出OUI为什么当我打开这个控制器我得到一个不能修改标题信息错误。当它到达if语句时,它会重定向到登录控制器,但实际上不会重定向。它只是在加载了仪表板控制器的情况下加载该消息。

<?php if (! defined('BASEPATH')) exit('No direct script access allowed'); 

class Dashboard extends CI_Controller { 

public function index() 
{ 
    //Config Defaults Start 
    $msgBoxMsgs = array();//msgType = dl, info, warn, note, msg 
    $cssPageAddons = '';//If you have extra CSS for this view append it here 
    $jsPageAddons = '';//If you have extra JS for this view append it here 
    $metaAddons = '';//Sometimes there is a need for additional Meta Data such in the case of Facebook addon's 
    $siteTitle = '';//alter only if you need something other than the default for this view. 
    //Config Defaults Start 


    //examples of how to use the message box system (css not included). 
    //$msgBoxMsgs[] = array('msgType' => 'dl', 'theMsg' => 'This is a Blank Message Box...'); 

    /**********************************************************Your Coding Logic Here, Start*/ 

    if ($this->session->userdata('xtr') == 'yes') 
    {         
     $bodyContent = $this->config->item('defaultTemplate') .'/cpanel/dashboard';//which view file 
     $bodyType = 'full';//type of template  
    } 
    else 
    { 
     redirect('login'); 
    } 

    /***********************************************************Your Coding Logic Here, End*/ 

    //Double checks if any default variables have been changed, Start. 
    //If msgBoxMsgs array has anything in it, if so displays it in view, else does nothing.  
    if(count($msgBoxMsgs) !== 0) 
    { 
     $msgBoxes = $this->msgboxes->buildMsgBoxesOutput(array('display' => 'show', 'msgs' =>$msgBoxMsgs)); 
    } 
    else 
    { 
     $msgBoxes = array('display' => 'none'); 
    } 

    if($siteTitle == '') 
    { 
     $siteTitle = $this->metatags->SiteTitle(); //reads 
    } 

    //Double checks if any default variables have been changed, End. 

    $this->data['msgBoxes'] = $msgBoxes; 
    $this->data['cssPageAddons'] = $cssPageAddons;//if there is any additional CSS to add from above Variable this will send it to the view. 
    $this->data['jsPageAddons'] = $jsPageAddons;//if there is any addictional JS to add from the above variable this will send it to the view. 
    $this->data['siteTitle'] = $siteTitle;//defaults can be changed via models/metatags.php 
    $this->data['bodyType'] = $bodyType; 
    $this->data['bodyContent'] = $bodyContent; 
    $this->load->view($this->config->item('defaultTemplate') .'/cpanel/index', $this->data); 
} 

} 

/* End of file dashboard.php */ 
/* Location: ./application/controllers/dashboard.php */ 
+0

检查outpot。肯定会有一些,也许只是空白。这里有多个重复的错误。 – Nanne

+0

我不明白的是,当我回声字符串,而不是变量和重定向,我仍然在if语句的其他部分。但是,如果我直接进入登录控制器,它会加载正常,因此如何才能让它从仪表板控制器重定向,从而得到该错误消息。 –

回答

0

你在做一件很无聊的错误

要重定向而不是exitting因为页面的执行甚至会重定向后继续。

通过放模()或退出;

第一种选择 //它应该是这样的,如果在其他

      redirect('login'); // or try ("location : login.php"); 

第二个选项 或尝试重定向之前重定向像

      header('Location: http://login.php');  // specify the url you wanna redirect 

          die(); // or you can have exit(); 
+0

由于某种原因,仍然没有解决问题。 –

+0

好,但你得到那个错误“不能修改标题信息错误” – Rinzler

+0

是的,我确实得到那一个 –