嗨,目前我还在学习CodeIgniter。我试图使用其会话并在自动加载文件中启用会话
首先文件的文件结构如下/
我像这样构建我的文件。所有模板都将进入views / index.php
我的问题是我收到此错误Cannot modify header information
我有一个控制器主页
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Home extends CI_Controller{
public function index()
{
$view['title'] = 'Welcome';
$data['data'] = $view;
$data['content'] = 'home';
$this->load->view('index',$data);
}
}
我的观点是这样的
视图/ index.php的
<!DOCTYPE html>
<html lang="en">
<?php
//echo ("Welcome User: " . $datas["user_id"]);
$this->load->view('header',$data);
$this->load->view('template/' . $content);
$this->load->view('footer',$data);
?>
</html>
视图/ header.php文件
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="">
<meta name="author" content="">
<title><?=$title?></title>
<link href="<?=ASSETS_PATH?>css/bootstrap.css" rel="stylesheet">
<link href="<?=ASSETS_PATH?>css/custom.css" rel="stylesheet">
</head>
<body oncontextmenu="return false">
views / footer.php
<script src="https://code.jquery.com/jquery-1.10.2.min.js"></script>
<script src="<?=ASSETS_PATH?>js/bootstrap.min.js"></script>
<script src="<?=ASSETS_PATH?>js/javascript.js"></script>
</body>
然后我的内容
views / template / home.php
<div class="jumbotron mod-jumbotron">
<div class="jm-button" style="text-align:center;">
<h1>Welcome</h1>
</div>
</div>
我不知道为什么我会得到错误会话。请希望你能帮助我。 我甚至没有开会。我刚刚在自动加载中添加了它,并且不知道为什么我会得到那个头问题。我的文件结构错了吗?
遇到PHP错误
严重性:警告
消息:无法修改标头信息 - 已发送的标头 (输出从site / application / controllers / home.php:2开始)
文件名:libraries / Session.php
行号:675
答案 0 :(得分:1)
您的家庭控制器中的开放<?php
标记之前可能有一个空格,导致输出。
// a space here is enough to cause output
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
答案 1 :(得分:0)
在配置文件或自动加载文件中使用此行或在index.php文件中添加可能会解决您的问题。
ob_start()
答案 2 :(得分:0)
您必须将页面加载到控制器中而不是视图中。
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Home extends CI_Controller{
public function index()
{
$data['title'] = 'Welcome';
$this->load->view('header',$data);
$this->load->view('index',$data);
$this->load->view('footer',$data);
}
}
视图用于显示,您可以使用控制器控制它。
<script src="<?= base_url(). 'js/javascript.js' ?>"></script>
<link href="<?=base_url(). 'css/custom.css'?>" rel="stylesheet">