Klasę kontrolera logowania: class AuthController extends Zend_Controller_Action zrobiłem wg tego tutoriala:
http://developer.denken.com.br/wp-content/...nd-auth_105.pdf
W funkcji odpowiedzialnej w tym kontrolerze za logowanie po tym jak juz zweryfikowano tozsamosc logujacego dałem:
<?php $login=$this->getRequest()->getPost('login'); //pobiera login wpisany przez uzytkownika w formularzu logowania $przestrzennazw1 = new Zend_Session_Namespace('sesja1'); $uzytkownicyTabela = new UzytkownicyTable(); $uzytkownik = $uzytkownicyTabela->znajdz($login); //zwraca wiersz tabeli dla danego uzytkownika /* mimo ze mam jeden wiersz to musze zrobic ponizej petle bo jakbym zapisal tak: $przestrzennazw1->id_uzytkownika = $uzytkownik['id_uzytkownika']; $przestrzennazw1->imie = $uzytkownik['imie']; to nic by nie zostało przypisane do zmiennych sesyjnych */ foreach($uzytkownik as $wiersz): $przestrzennazw1->id_uzytkownika = $wiersz['id_uzytkownika']; $przestrzennazw1->imie = $wiersz['imie']; endforeach; ?>
Jak zamiast tych funkcji Zend Frameworka zrobię w normalnym PHP to o dziwo działa.
<?php $login=$this->getRequest()->getPost('login'); $uzytkownicyTabela = new UzytkownicyTable(); $uzytkownik = $uzytkownicyTabela->znajdz($login); //zwraca wiersz tabeli dla danego uzytkownika foreach($uzytkownik as $wiersz): $_SESSION['id_uzytkownika'] = $wiersz['id_uzytkownika']; $_SESSION['imie'] = $wiersz['imie']; endforeach; ?>
W funkcji odpowiadającej za wylogowanie w tym kontrolerze dodałem:
<?php ?>
Na innych stronach dostepnych po zalogowaniu w kontrolerach umieszcza się funkcję:
public function preDispatch()
{
}
Nic w niej związanego z sesjami nie dodawałem.
I jak próbuję na dowolnej stronie dostępnej po zalogowaniu wyświetlić wartości zmiennych sesyjnych:
To nic się nie wyświetla, dlaczego ?