Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [zend] nie wyświetlają się wartości zmiennych sesyjnych
nieraczek
post
Post #1





Grupa: Zarejestrowani
Postów: 405
Pomógł: 6
Dołączył: 12.01.2007

Ostrzeżenie: (0%)
-----


Chcę żeby po zalogowaniu użytkownika w zmiennych sesyjnych były zapamiętywane: id_uzytkownika i jego imie pobrane z tabeli zeby potem mozna je bylo wyswietlic na kazdej stronie dostepnej po zalogowaniu, a przy uzyciu funkcji ZF do sesji nie udaje mi sie potem wyswietlic wartosci zmiennych sesyjnych.

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:
  1. <?php
  2. $login=$this->getRequest()->getPost('login'); //pobiera login wpisany przez uzytkownika w formularzu logowania
  3. $przestrzennazw1 = new Zend_Session_Namespace('sesja1');
  4.                    
  5. $uzytkownicyTabela = new UzytkownicyTable();
  6.                    
  7. $uzytkownik = $uzytkownicyTabela->znajdz($login); //zwraca wiersz tabeli dla danego uzytkownika
  8.  
  9. /*
  10. mimo ze mam jeden wiersz to musze zrobic ponizej petle bo jakbym zapisal tak:
  11. $przestrzennazw1->id_uzytkownika = $uzytkownik['id_uzytkownika'];
  12. $przestrzennazw1->imie = $uzytkownik['imie'];
  13. to nic by nie zostało przypisane do zmiennych sesyjnych
  14. */                    
  15. foreach($uzytkownik as $wiersz):
  16. $przestrzennazw1->id_uzytkownika = $wiersz['id_uzytkownika'];
  17. $przestrzennazw1->imie = $wiersz['imie'];
  18. endforeach;
  19. ?>



Jak zamiast tych funkcji Zend Frameworka zrobię w normalnym PHP to o dziwo działa.
  1. <?php
  2. $login=$this->getRequest()->getPost('login');
  3.  
  4. session_start(); //rozpoczecie sesji - nawet jak to pomine to i tak wszystko dziala, nie wiem czemu
  5.  
  6. $uzytkownicyTabela = new UzytkownicyTable();
  7. $uzytkownik = $uzytkownicyTabela->znajdz($login); //zwraca wiersz tabeli dla danego uzytkownika
  8.  
  9.  
  10. foreach($uzytkownik as $wiersz):
  11. $_SESSION['id_uzytkownika'] = $wiersz['id_uzytkownika'];
  12. $_SESSION['imie'] = $wiersz['imie'];
  13. endforeach;
  14. ?>








W funkcji odpowiadającej za wylogowanie w tym kontrolerze dodałem:
  1. <?php
  2. unset ($przestrzennazw1->id_uzytkownika);
  3. unset ($przestrzennazw1->imie);
  4. ?>




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:
  1. <?echo $przestrzennazw1->id_uzytkownika ?>
  2. <?echo $przestrzennazw1->imie ?>


To nic się nie wyświetla, dlaczego ?

Ten post edytował nieraczek 13.11.2008, 14:07:20
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 17:46