Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [ZendFramework] Problem z Zend Auth
Forum PHP.pl > Forum > PHP > Frameworki
Damiankossek
Witam,
Mam problem z Zend_Auth, logowanie przebiega z sukcesem lecz nie zapisuję mi sesji.
Kod logowania:
  1. public function loginAction()
  2. {
  3. print_r($this->ZendAuth->getIdentity());
  4.  
  5. if($this -> getRequest() -> isPost())
  6. {
  7. $auth = new Zend_Auth_Adapter_DbTable($db);
  8.  
  9. $auth -> setTableName('users')
  10. -> setIdentityColumn('name')
  11. -> setCredentialColumn('password');
  12.  
  13. $auth -> setIdentity($this -> getRequest() -> getPost('name'))
  14. -> setCredential($this -> getRequest() ->getPost('password'));
  15.  
  16. $result = $auth -> authenticate($auth);
  17.  
  18. if($result -> getCode() == Zend_Auth_Result::SUCCESS)
  19. {
  20. $this -> view -> status = "Logowanie się powiodło";
  21.  
  22. }
  23. else
  24. {
  25. $this -> view -> status = 'Logowanie się nie powiodło';
  26. }
  27. }
  28.  
  29. $this -> view -> content = self::buildForm();
  30. }


W zmiennej status w widoku ladnie sie pojawia ze logowanie sie powiodlo wrazie podania prawidlowych danych lecz gdy odswieze strone drugi raz to powinno zadzialac print_r($this->ZendAuth->getIdentity()); lecz niestety nic nie wyswietla ... Nawet hasIdentity zwraca za kazdym razem FALSE. Co moze byc nie tak ?
bendi
Chyba jeszcze musisz zapisac wyniki, cos w stylu:
  1. $auth->getStorage()->write($ident);
Damiankossek
Dzięki smile.gif

Natomiast teraz mam drugi problem, generuje sobię Zend_Formem formularz.

  1. private function buildForm()
  2. {
  3. $form = new Zend_Form();
  4. $form -> setMethod('POST') -> setAction('/login/process');
  5.  
  6. $username = $form -> createElement('text', 'name');
  7. $password = $form -> createElement('password', 'password');
  8.  
  9. $username -> setRequired(true);
  10. $password -> setRequired(true);
  11.  
  12. $username -> setLabel('Username');
  13. $password -> setLabel('Password');
  14.  
  15. $form -> addElement($username);
  16. $form -> addElement($password);
  17. $form -> addElement('submit', 'Sign In');
  18.  
  19. return $form;
  20. }


I wychodzi mi coś takiego:


Jak ustawić labele zeby były obok inputów lub nad nimi ?
melkorm
Poczytaj o dekoratorach, akurat Zend z tym kuleje i jest to ciężki orzech do przetrawienia wink.gif

Jedna z pierwszych pozycji must-read to : link .
bendi
Eee to proste jest - dodajesz Zend_Form_Decorator_Html, z odpowiednia nazwa taga i juz smile.gif. Poza artykulem podanym przez melkorma mozesz jeszcze rzucic okiem tutaj
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.