笨 - 重定向[复制](Codeigniter - redirect [duplicate])

2019-08-21 00:50发布

这个问题已经在这里有一个答案:

  • 如何解决“头已经发送”错误在PHP 11个回答

我有问题,从重定向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>

感谢帮助。

Answer 1:

如前所述,确保有在开幕前没有空格(空格,制表符,新行等) <?php在控制器的标签。 如果你有一个结束?>标签,那么可以删除,因为它往往会导致问题redirect


在这种情况下,如果你不关心在URL中具有该功能的名称(这是不会改变的URL,以表明你调用(函数logotyp()的URL),而redirect功能会)/刷新页面,那么你可以只需要直接调用相关功能,在你的index()函数:

public function index()
{
    $this->logotyp();
}

对于你的第二个问题(CSS不加载); 它可能是存在的,因为链接到它的路径不正确。 使用base_url从CodeIgniter的功能URL Helper ,你可以轻松地生成正确的路径。 我不知道你的CSS文件(S)的位置,但在这个例子中,我会认为,相对于网站的根,它是在这里: assets/css/style.css 。 只是相对于Web根目录的路径添加为这样:

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

link_tag()在HTML Helper也可以帮助链接样式的产生。



Answer 2:

好像你在你的控制器一些空白...请确保您删除它,该文件以<?php 。 您也可以重定向之前不输出任何东西(没有意见,没有回声)...



文章来源: Codeigniter - redirect [duplicate]