セッションを確認するためにMY_Controllerクラスを作成しました。Codeigniter redirect()の問題
私のLoginControllerがユーザー情報をチェックしていて、それがOKであれば、ユーザーをPainelControllerにリダイレクトします。私はリダイレクトを使用するので、私のURLは/ localhost/session/loginの代わりに/ localhost/painelで更新されます。
リダイレクトを使用すると、
回避策はありますか?
ご協力いただきありがとうございます。
PS:私は.htaccessファイルを使用して、CI Wiki
EDITログインの
class MY_Controller extends CI_Controller {
public function __construct() {
parent::__construct();
if(!$this->session->userdata('usuario')) {
redirect('login');
}
}
}
ワンピースで見つかった1: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
これで1点はありませんでしたか?あなたのセッションは、リダイレクト後に自分自身でクリアされていますか? – Aniket
もしそうなら、なぜ私はロードとビューを使用すると正しく動作し、リダイレクトだけでこの問題が発生するからです。 – Gerep
いくつかのセッション変数をエコーすることで、クリアされているかどうか確認できます。 – Aniket