基本上,我收到的错误信息是:
无法修改标题信息 - 已经发送的标题(输出从D:\ xampp \ htdocs \ star \ application \ controllers \ process_login.php:1开始)
我知道该错误的含义是什么,但我无法弄清楚输出的起始位置。我在process_login.php
文件中没有空格,也没有任何echo
空格。
我通过http://localhost/star/index.php/star
网址
明星控制器
class Star extends CI_Controller {
public function index()
{
$this->load->view('login');
}
}
在表单提交上,我发布到process_login Controller。
process_login Controller(它甚至没有结束标记以避免空白)
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Process_login extends CI_Controller {
public function index()
{
$this->load->library('form_validation');
$this->form_validation->set_rules('userid', 'Username', 'required');
$this->form_validation->set_rules('password', 'Password',
'required|callback_check_valid['.trim($this->input->post('userid')).']');
if ($this->form_validation->run() == FALSE)
{
$this->load->view('login');
}
else
{
redirect('dashboard'); // this is the problem area
}
}
public function check_valid($pw, $un)
{
if($un)
{
$this->load->model('user');
if($this->user->is_authenticated($un, $pw))
{
return true;
}
else
{
$this->form_validation->set_message('check_valid',
'Invalid login. Please try again!');
return false;
}
}
}
}
/* End of file process_login.php */
信息中心控制器
class Dashboard extends CI_Controller {
public function index()
{
$this->load->view('admin_area', array('page_title'=>'Dashboard');
}
}
我假设process_login.php:1
表示从该文件的第1行开始输出?如果是这样,我在该文件中没有任何输出或空格。那为什么我得到错误?
从process_login.php
文件中删除所有内容后,我仍然遇到同样的错误。这就是文件的精简版本:
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Process_login extends CI_Controller {
public function index()
{
redirect('dashboard');
}
}
我开始认为问题可能出在这个控制器文件之前加载的其他文件中。因此,它说输出从第1行开始。
答案 0 :(得分:0)
我设法解决了。
我提到了这个SO Answer并且它有效。不确定主index.php
怎么能成为麻烦制造者。有人愿意解释一下吗?
答案 1 :(得分:0)
我会说@Shaifullslam,在点3看here。 可能是你在尝试查看index.php时无意中点击了输入。因为我做了那个错误。
关于ob_start();你可以阅读here 所以基本上为什么它没有给你错误,因为respone的输出首先由php缓冲。所以它不会导致错误。缓冲区打开时,php不会发送输出或响应。轻松阅读php manual,还有问题similar
答案 2 :(得分:0)
试试这个
redirect(base_url().'process_login/');