Codeigniter - 重定向

时间:2013-04-09 16:01:09

标签: php codeigniter redirect codeigniter-url

我有问题从index重定向到功能logotyptiskoviny。当我写入浏览器(localhost/my_page/sluzby/logotyp)时,它可以工作,但它显示没有CSS(这是第二个问题)。 URL Helper已自动加载。

class Sluzby extends CI_Controller {

    public function __construct()
    {
        parent::__construct();
        $this->load->library('uri');
        $this->load->model('sluzby_model');
        $this->load->model('pages');
    }

    public function index()
    {
        redirect('sluzby/logotyp');
    }

    public function logotyp()
    {
        $data['nadpis'] = "SomeText";
        $this->basic_template->view('basic', 'sluzby_view',$data);
    }

    public function tiskoviny()
    {
        $data['nadpis'] = "SomeText";
        $this->basic_template->view('basic', 'sluzby_view',$data);
    }
}

当我想从索引重定向时,浏览器会显示此错误:

<p>Severity: Warning<br>
Message:  Cannot modify header information - headers already sent by (output started at C:\Program Files\VertrigoServ\www\dsvision\application\controllers\sluzby.php:1)<br>
Filename: helpers/url_helper.php<br>
Line Number: 542</p>

感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

如前所述,请确保控制器中打开<?php标记之前没有空格(空格,制表符,换行符等)。如果您有一个结束?>标记,则可以将其删除,因为它通常会导致redirect出现问题。


在这种情况下,如果您不关心URL中的函数名称(这不会更改URL以显示您在URL中调用的函数(logotyp()),而{ {1}}功能会)/刷新页面,然后您可以直接在redirect函数中调用相关函数:

index()

第二期(CSS未加载);它可能正在发生,因为它的路径链接不正确。使用CodeIgniter public function index() { $this->logotyp(); } 中的base_url函数,您可以轻松生成正确的路径。我不知道您的CSS文件位于何处,但对于此示例,我将假设相对于站点根目录,它位于:URL Helper。只需添加相对于Web根目录的路径:

assets/css/style.css
<link href="<?php echo base_url("assets/css/style.css"); ?>" type="text/css" rel="stylesheet"> 中的

link_tag()也可以帮助生成样式表链接。

答案 1 :(得分:1)

看起来您的控制器中有一些空白处...确保将其删除,文件以<?php开头。您也无法在重定向之前输出任何内容(没有视图,没有回声)......