Php Codeigniter错误消息无法修改标头信息
我在运行php CodeIgniter项目时收到以下错误消息: 遇到一个PHP错误 严重性:警告 消息:无法修改标题信息-标题已由发送 (输出开始于 C:\AppServ\www\tree\application\models\mtree.php:17) 文件名:core/Common.php 电话号码:442 第17行:Php Codeigniter错误消息无法修改标头信息,php,codeigniter,Php,Codeigniter,我在运行php CodeIgniter项目时收到以下错误消息: 遇到一个PHP错误 严重性:警告 消息:无法修改标题信息-标题已由发送 (输出开始于 C:\AppServ\www\tree\application\models\mtree.php:17) 文件名:core/Common.php 电话号码:442 第17行: echo $row->members_id . "</br>"; echo$row->members\u id。“”; 这是我的模型函数: functi
echo $row->members_id . "</br>";
echo$row->members\u id。“”;
这是我的模型函数:
function convert_all() {
$this->db->empty_table('table1');
$this->db->empty_table('table2');
$this->db->query("INSERT INTO `table1` (`members_id`, `members_username`);
$query = $this->db->get('table2');
foreach ($query->result() as $row) {
if ($row->members_id > 1) {
echo $row->members_id . "</br>";
}
if ($this->isadvanced($row->members_id, $row->members_direct_id)) {
$this->insert_to_right($row, $row->members_direct_id);
} else {
$this->insert_to_left($row, $row->members_direct_id);
}
}
}
function convert_all(){
$this->db->empty_表('table1');
$this->db->empty_表('table2');
$this->db->query(“插入到'table1'('members\u id','members\u username');
$query=$this->db->get('table2');
foreach($query->result()作为$row){
如果($row->members\u id>1){
echo$row->members_id.“”;
}
如果($this->isadvanced($row->members\u id,$row->members\u direct\u id)){
$this->insert_to_right($row,$row->members_direct_id);
}否则{
$this->insert_to_left($row,$row->members_direct_id);
}
}
}
在使用codeigniter时,最好只在视图中使用echo
“在任何地方回声”会将一些数据随机发送到浏览器,之后您将无法修改标题(这包括尝试重定向、设置内容类型等)
您应该重新组织代码,以便,echo
仅在视图中完成。这将解决Codeigniter中的标题问题
这还包括在非视图php文件中的右大括号“
}”
”后面的额外空格。使用codeigniter时,最好只在视图中使用echo
“在任何地方回声”会将一些数据随机发送到浏览器,之后您将无法修改标题(这包括尝试重定向、设置内容类型等)
您应该重新组织代码,以便,echo
仅在视图中完成。这将解决Codeigniter中的标题问题
这还包括右大括号“
}?>
"在非查看php文件中。在调用header函数之前,不能显示任何内容。不应显示任何形式的模型或控制器,以避免此类错误。如果要显示来自控制器或模型的内容,则应将输出存储到缓冲区,而不是发送到浏览器。可以存储输出在调用header()
函数之前,使用ob\u start()
函数放入缓冲区。然后,您可以执行以下操作
if(true)
{
header("Location:http://google.com");
}
else
{
ob_end_flush();
}
在调用header函数之前,不能显示任何内容。不应显示任何形式的模型或控制器以避免此类错误。如果要显示来自控制器或模型的内容,则应将输出存储到缓冲区,而不是发送到浏览器。可以使用
header()函数之前的de>ob\u start()
函数。然后您可以执行以下操作
if(true)
{
header("Location:http://google.com");
}
else
{
ob_end_flush();
}
这是您的问题-echo$row->members\u id。“;--正如上面的回答所说,不要在控制器中回显某些内容,请在视图中按此操作-始终这是您的问题-echo$row->members\u id。“”正如上面的回答所说,不要在你的控制器中重复某些东西,在视图中推动它-总是我认为这会很有帮助
在你的
应用程序/config/config.php
文件中使用$config['sess\u save\u path']=sys\u get\u temp\u dir()
而不是$config['sess\u save\u path']=NULL;
,我想这会很有帮助
在
应用程序/config/config.php
文件中使用$config['sess\u save\u path']]=sys\u get\u temp\u dir()
而不是$config['sess\u save\u path']=NULL;
文件中使用而不是不相关的:您在语句末尾缺少引号:$this->db->query(“插入表1
(members\u id
,members\u username
);在调用header
函数之前发送给用户的某些内容导致的错误。您提供的代码没有提供足够的信息来帮助调试。请阅读有关错误的详细信息:在此处查看感谢shuvo的帮助相关:此语句末尾缺少引号:$this->db->query(“插入表1
(成员id
,成员用户名
);在调用header
函数之前发送给用户的某些内容导致的错误。您提供的代码没有提供足够的信息来帮助调试。请阅读有关错误的详细信息:查看此处感谢shuvo仅在视图内帮助Echo。+1echo仅在视图内。+1