Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [kohana] auth, logowanie, co robię źle?
Forum PHP.pl > Forum > PHP > Frameworki
wald3k
Uczę się kohana 2.3.4, chcę zrobić logowanie i ale nie działa i nie wiem co robię źle. Mam taki kod:
  1. class Auth_Controller extends Home_Controller {
  2.  
  3. public function __construct()
  4. {
  5. parent::__construct();
  6. $this-> session = Session:: instance();
  7. $this-> auth = Auth :: instance();
  8. }
  9.  
  10. public function index()
  11. {
  12.  
  13. }
  14.  
  15. public function login()
  16. {
  17. if ($this->auth->logged_in())
  18. {
  19. url::redirect($this->session->get("requested_url"));
  20. echo '1';
  21. }
  22. else
  23. {
  24. if ($this->auth->logged_in()){
  25.  
  26. echo '2';
  27. }else{
  28. //$template->title="Please Login";
  29. $this->template = new View('template');
  30. $this->template->tresc= new View('login');
  31. $this->template->render(TRUE);
  32. echo '3';
  33.  
  34. }
  35. }
  36. }
  37.  
  38. public function login2() {
  39.  
  40. $username = $this->input->post('username');
  41. $password = $this->input->post('password');
  42. $user = ORM::factory('user', $username);
  43.  
  44. Auth::instance()->login($user->username, $password);
  45.  
  46.  
  47. echo html::anchor('auth/logout', 'wyloguj!');
  48.  
  49. if ($this->auth->logged_in())
  50. echo '4';
  51. else
  52. echo '5';
  53.  
  54. }
  55. }

  1. class Home_Controller extends Controller {
  2.  
  3. public $template;
  4. public $session;
  5. public $auth;
  6. public function __construct()
  7. {
  8. parent::__construct();
  9.  
  10. }
  11.  
  12. public function index()
  13. {
  14.  
  15. $this->template = new View('template');
  16. $this->template->tresc = new View('glowna/index');
  17. $this->template->render(TRUE);
  18.  
  19.  
  20. }
  21. }


Czy mógłby ktoś na to spojrzeć? Po logowaniu ten fragment
  1. if ($this->auth->logged_in())
  2. echo '4';
  3. else
  4. echo '5';
Ciągle zwraca 5, czyli chyba user nie jest zalogowany? Co robię źle że nie chce logować?
Dzięki za pomoc.

Jakby była potrzeba pokazać pliki widoków to napiszcie .
szok
Hm
W Home_Controller daj w konstruktorze:
Kod
$this-> session = Session:: instance();
$this-> auth = Auth :: instance();



Nie znam kohany, ale czy ładujesz klasę auth automatycznie? czy tylko w wybranych kontrolerach?
_olo_1984
Na szybko 4 rzeczy:
1.
  1. public function login2()
  2. {
  3. // ...
  4. // sprawdz czy załadowano usera
  5. if(!$user->loaded)
  6. {
  7. // redirect lub komunikat
  8. }
  9. // ...
  10. }

2. Jak dodawałeś usera do bazy to haszowałeś hasło ? Jeżeli z z solą to przy logowaniu także to musisz zrobić
  1. //...
  2. Auth::instance()->login($user->username, Auth::instance()->hash_password($password, true));

3. Pamiętaj, że jeżeli dodajesz użytkownika z rolą admina, to musi on mieć także rolę login
4. To zdecyduje się czy Auth::instance()-> czy $this->auth :-)

pozdr
bełdzio
nadałeś użytkownikowi rolę login?
wald3k
Dzięki za pomoc. _olo_1984 poprawiłem wszystko według twoich uwag i działa, problem głównie rozchodził się właśnie o to haszowanie hasła.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.