У меня есть приложение CI, у которого есть контроллер auth и функция переключателя. В основном все это делает идентификатор из URI, получает некоторые пользовательские данные из идентификатора, назначает некоторые данные сеанса, а затем загружает представление.
function switch_user(){ if(!$this->auth_lib->is_admin()){ $this->session->set_flashdata('status', 'You need to be an administrator to access this page.'); redirect('auth/login'); } if($id = $this->uri->segment(3)): $this->load->model('auth_model', 'auth'); $username = $this->auth->get_username($id)->account_name; $this->session->set_userdata(array('at_id' => $id, 'username' => $username)); $this->session->set_flashdata('status','User switched.'); endif; $this->load->model('clients_model', 'clients'); $data['users'] = $this->clients->get_at_clients(); $this->load->view('auth/switch', $data); }
Я получаю следующую ошибку:
Message: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\cp\application\controllers\auth.php:130)
Строка 130 – $ username = $ this-> auth-> get_username ($ id) -> account_name;
Вот модельная функция:
function get_username($at_id){ $portal = $this->load->database('warehouse', TRUE); $portal->select('account_name'); $portal->where('account_id', $at_id); $portal->from('wh_account'); $query = $portal->get()->result(); return $query[0]; }
Я не понимаю, что происходит. Когда я запускаю код локально, я не получаю ошибку. Но когда я запускаю его удаленно, то есть через Интернет, я получаю ошибку заголовков.
Может ли кто-нибудь помочь выявить проблему?
Благодаря,
Билли
ОБНОВИТЬ
Я фактически положил var_dump вокруг $ username = $ this-> auth-> get_username ($ id) -> account_name; которая вызывала ошибку. Я не знаю, почему, хотя 🙁
Я бы проверял, что у вас нет закрывающего тега PHP в любой из ваших моделей, контроллеров или библиотек – это часто вызывает такой тип ошибки.
//Your Code is for redirect redirect('site/function1'); //Alternate Code for solve this issue $url = 'site/function1'; echo' <script> window.location.href = "'.base_url().'index.php?/'.$url.'"; </script> ';
Почему я получаю «не могу изменить заголовки заголовков заголовков, уже отправленных с помощью registration_model» в codeigniter?