php-Codeigniter-重定向
作者:互联网
这个问题已经在这里有了答案: > How to fix “Headers already sent” error in PHP 11个
我从索引重定向到函数logotyp或tiskoviny时遇到问题.当我写入浏览器(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>
感谢帮助.
解决方法:
如前所述,请确保在控制器中的<?php标签前没有空格(空格,制表符,换行等).如果您有休息时间?标签,则可以将其删除,因为它通常会导致重定向问题. 在这种情况下,如果您不关心URL中是否包含函数名称(这不会更改URL以显示URL中正在调用的函数(logotyp()),而重定向函数会)/刷新页面,那么您可以直接在index()函数中调用相关函数:
public function index()
{
$this->logotyp();
}
对于第二个问题(CSS未加载);可能是因为指向其路径的链接不正确.使用CodeIgniter的URL Helper中的base_url函数,您可以轻松生成正确的路径.我不知道您的CSS文件位于何处,但是对于本示例,我假设相对于站点根目录,它位于:assets / css / style.css.只需添加相对于Web根的路径,如下所示:
<link href="<?php echo base_url("assets/css/style.css"); ?>" type="text/css" rel="stylesheet">
HTML Helper中的link_tag()还可以帮助样式表链接的生成.
标签:php,codeigniter,redirect,codeigniter-url 来源: https://codeday.me/bug/20191013/1909131.html