セッションをチェックするためにMY_Controllerクラスを作成しました。
LoginControllerがユーザー情報をチェックしていて、問題がなければ、ユーザーをPainelControllerにリダイレクトします。リダイレクトを使用しているので、URLは/ localhost / session/loginではなく/localhost/painelで更新されます
問題は、リダイレクトを使用すると、load-> viewを使用するだけで、セッションにアクセスできないことです。
回避策はありますか?
助けてくれてありがとう。
PS: CIWikiにある.htaccessを使用しています
編集
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.'));
}
-
私のPainelビュー
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