我测试我的localhost运行良好,现在显示任何错误,但上传到godaddy服务器后。它是codeigniter版本2.2.6。
此错误显示在登录页面中。
错误消息1
消息:无法修改标头信息 - 已经发送的标头(输出从/home/user/public_html/ngapali/test/application/controllers/admin/user.php:1开始)
文件名:libraries / Session.php
行号:433
错误消息2
消息:无法修改标头信息 - 已经发送的标头(输出从/home/user/public_html/ngapali/test/application/controllers/admin/user.php:1开始)
文件名:libraries / Session.php
行号:689
我的控制器的管理控制器
<?php
class Admin_Controller extends MY_Controller{
function __construct(){
parent::__construct();
$this->load->helper('form');
$this->load->library('form_validation');
$this->load->library('session');
$this->load->model('user_m');
$this->load->model('roomtype_m');
$this->load->model('room_m');
$this->load->model('roomcapacity_m');
//login check
$exception_uris = array(
'admin/user/login',
'admin/user/logout'
);
if(in_array(uri_string(), $exception_uris) == FALSE) {
if($this->user_m->loggedin() == FALSE) {
redirect('admin/user/login');
}
}
}}?>
我的登录页面/用户/登录
控制器
<?php
class User extends Admin_Controller {
function __construct(){
parent::__construct();
}
public function index() {
$this->data['users'] = $this->user_m->get();
$this->data['subview'] = 'admin/user/index';
$this->load->view('admin/_layout_main',$this->data);
}
public function login() {
$dashboard = 'l0gadmin/dashboard';
$this->user_m->loggedin() == FALSE || redirect($dashboard);
$rules = $this->user_m->rules;
$this->form_validation->set_rules($rules);
if($this->form_validation->run() == TRUE){
if($this->user_m->login() == TRUE){
redirect($dashboard);
}else{
$this->session->set_flashdata('error','That email/password combination does not exist ');
redirect('admin/user/login','refresh');
}
}
$this->data['subview'] = 'admin/user/login';
$this->load->view('admin/_layout_modal',$this->data);
}
public function logout(){
$this->user_m->logout();
redirect('admin/user/login');
}}?>
模型
<?php
class User_m extends MY_Model {
function __construct(){
parent::__construct();
}
public function login(){
$user = $this->get_by(array(
'email'=> $this->input->post('email'),
'password' => $this->hash($this->input->post('password')),
),TRUE);
if(count($user)){
$data = array(
'name'=> $user->name,
'email' => $user->email,
'id'=> $user->id,
'loggedin'=>TRUE,
);
$this->session->set_userdata($data);
}
}
public function logout(){
$this->session->sess_destroy();
}
public function loggedin(){
return (bool) $this->session->userdata('loggedin');
}
public function hash($string){
return hash('sha512', $string . config_item('encryption_key'));
}}?>
查看登录页面
<div class="row">
<div class="col-md-3">
<h2>Admin Login</h2>
<?php
echo validation_errors();
echo form_open('');
$email = array(
'name' => 'email',
'class' => 'form-control',
'placeholder' => 'Email Address'
);
echo form_input($email) . "<br/>";
$password = array(
'name' => 'password',
'class' => 'form-control',
'placeholder' => 'Password'
);
echo form_password($password) . "<br/>";
$submit = array(
'name' => 'submit',
'class' => 'form-control btn btn-primary',
'value' => 'Login'
);
echo form_submit($submit);
echo form_close();
?>
</div>
</div>
我搜索这个问题可以是开放和封闭的标签。我尝试添加所有页面但它仍然显示错误。为什么呢?
答案 0 :(得分:3)
阅读错误消息:
输出开始于 /home/user/public_html/ngapali/test/application/controllers/admin/user.php:1
/user.php
文件在第1行有一些空白字符
检查<?php
代码前的空格。
删除它并刷新错误将消失。
还有一个建议,
在控制器和模型文件中省略结束php标签?>
。
在此处阅读更多内容:Why would one omit the close tag?
答案 1 :(得分:0)
这很可能是因为发生了错误或警告,由于您当前的display_errors
设置而无法看到。我建议打开它以修复这些错误/警告。