Я создал класс MY_Controller для проверки сессий.
Мой LoginController проверяет информацию о пользователе, и если все в порядке, я перенаправляю пользователя в PainelController. Я использую перенаправление, поэтому мой URL будет обновляться с помощью / localhost / painel вместо / localhost / session / login
Проблема в том, что когда я использую перенаправление, я не могу получить доступ к своему сеансу, только используя load-> view.
Есть ли обходной путь?
Заранее спасибо за любую помощь.
PS: я использую .htaccess, найденный на CI Wiki
EDIT
class MY_Controller extends CI_Controller {
public function __construct() {
parent::__construct();
if(!$this->session->userdata('usuario')) {
redirect('login');
}
}
}
Часть логина: расширяет CI_Controller
if( $rs )
{
$this->session->set_userdata('usuario', $usuario);//usuario is a object
//$this->load->view('painel');//it works
redirect('painel', 'location');//it doesn't
}
else
{
$this->load->view('login', $data = array('mensagem'=>'Usuário ou senha inválidos.'));
}
-
My Painel View
echo $this->session->userdata('usuario')->usuario_nome; //it works
only if I load->view('painel')
Даже если я попытаюсь получить доступ к этому значению сеанса на моем PainelController (расширяет MY_Controller), он не будет работать, скажет:
Message: main() [function.main]: The script tried to execute a method or access a property of an incomplete object. Please ensure that the class definition "Usuario" of the object you are trying to operate on was loaded _before_ unserialize() gets called or provide a __autoload() function to load the class definition