Mam bardzo dziwny problem z logowaniem. Mam 2 kontrolery: Login i Index. Jak się można domyśleć pierwszy jest aktywny gdy się logujemy i w wypadku powodzenia przekierowuje do drugiego. Niestety w przypadku poprawnych danych przekierowuje mnie z powrotem na stronę logowania. Nigdzie nie mam aktywnego przekierowania na stronę logowania
class Controller_Index extends Controller_Template { public $template = "main/index"; public function before() { parent::before(); $this->template->menu = View::factory("main/menu"); $this->template->content = View::factory("main/content"); //if(!$this->is_logged()) // $this->redirect('login'); $session = Session::instance(); $this->template->menu->user_data = $session->get('user_data'); } public function action_index() { } public function is_logged() { $session = Session::instance(); if($session->get('user_data')) { return true; } return false; } } ?>
class Controller_Login extends Controller_Template { public $template = "main/index"; private $view; private $login; public function before() { parent::before(); //if($this->is_logged()) { // $this->redirect('/'); //} $this->login = new Model_Login; $this->template->content = View::Factory("main/login"); $this->view = &$this->template->content; $this->template->menu = ''; } public function action_login() { $post = $this->request->post(); if($post) { try { if($this->login->log_in($post)) //zwraca true $this->redirect('/'); //nie dziala } catch(Exception $e) { $this->view->login_error = $e->getMessage(); } } } public function action_logout() { $this->login->log_out(); $this->redirect('login'); } public function is_logged() { $session = Session::instance(); if($session->get('user_data')) { return true; } return false; } } ?>