Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP/ZEND/AUTENTYKACJA] Jak to się robi?
Forum PHP.pl > Forum > PHP > Frameworki
juzwa
może na początek co jest zrobione -
1)logowanie i zapisywanie danych z logowania do sesji
jest to ściągnięte z przykładu z sieci

2)jak się dostać do tego co jest w sesji
$_SESSION['Zend_Auth']['sender'](jest to obiekt)[dane z wiersza]

próbowałem Zend_Session_Namespace['Zend_Auth'] - ale niestety nie działa
próbowałem różnych kombinacji, ale nie wyszło - dlatego też robię na razie "po staremu"
$x = $_SESSION['Zend_Auth']['sender'];
$x->id_usr(czy czego tam potrzebuję)

ale jak się do tego dostać po zendowemu

3)jak dla mnie najpoważniejsza część, do której nie mam pojęcia jak się zabrać
otóż po zalogowaniu jest tam pobieranie uzupełnianie czegoś bez przeładowania strony - wiadomo o co chodzi - i teraz jest problem, tego typu, że chciałbym aby przy żądaniach ajaxowych pojawiał się div z informacją np SESJA wygasła i gdzieś location.replace("strona logowania");
dodatkowo chcę załatwić także obsługę "normalnych" czyli nieajaxowych żądań - czyli klikam na "TYLKO ZALOGOWANI" a on mnie przekierowuje na stronę logowania

kiedyś napisałem sobie coś na kształt frameworka - działało to na zasadzie XML-a i tam był dla żądania atrybut check="normal" check="ajax" - i w zależności od tego atrybutu rozdzielałem tak jak chciałem

a jak to się robi po zendowemu?

jak "oznaczyć" żądanie że jest ajaxowe i że zamiast zwyczajnego "redirect" ma być przekierowanie na akcję, która generuje javascricp potrzebny do przerzucenia na stronę logowania?
tomek_
Nie napisałeś w jaki sposób zrobiłeś "ogowanie i zapisywanie danych z logowania do sesji"

ja mam kotroler który dziedziczy po Zend_Auth, żeby się potem dobrać do odpowiednich danych 

wystarczą takie metody

  1. <?php
  2.   $auth = My_Auth::getInstance();
  3.  
  4.   $auth->hasIdentity(); // sprawdza czy zalogowany
  5.  
  6.   $auth->getStorage()->read(); // pobiera dane z sesji<
  7. ?>


w ten sposób sprawdzam czy żadnie było ajaxowe

  1. <?php
  2. if($this->_request->isXmlHttpRequest())
  3.  
  4. { //żądanie ajaxowe
  5.  
  6. }
  7. ?>


jeśli chodzi o wymuszenie logowania to w kontolerze po którym dziedziczą wszytkie moje kontrolery mam coś takiego

  1. <?php
  2.  
  3.  abstract class My_Controller_Action extends Zend_Controller_Action  
  4.  {
  5.   
  6.      public function preDispatch() 
  7.      {
  8.          $module     = $this->_request->getModuleName();
  9.          $controler     = $this->_request->getControllerName();
  10.          $action     = $this->_request->getActionName();
  11.  
  12.          if(My_Page_Config::getInstance()->isLoginRequired()===true && ($module!="default" && $controler!="login"))
  13.          {//jeśli wymagane logowanie a uż  niezaologowany przekierowanie do strony logowania
  14.              if(!My_Auth::getInstance()->hasIdentity())
  15.                       $this->_redirect("login/form");
  16.          }
  17.  
  18.      }
  19.   
  20.  }
  21.  
  22.  
  23. ?>
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.