Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [ZendFramework] Zend_Session_Namespace::setExpirationHops, Jak przedłużyć expirationHops?
sel
post 21.05.2009, 10:39:06
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 22.08.2007
Skąd: Gdańsk / Chełmno

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


Witam,
Mam taki problem:
Buduje sklep a konkretnie składanie zamówienia. Chciał bym zrobić tak, że pierwszy ekran po kliknięciu w "Składam zamówienie" to strona z formularzem logowania oraz rejestracji. Chciał bym Aby po zalogowaniu / rejestracji system przerzucił mnie na strone z formularzem składania zamówienia - czyli nie standardowo na np. "/" tylko gdzie indiziej.
Robie tak:
W "Składam zamówienie":
Kod
$orderNS = new Zend_Session_Namespace('order');
$orderNS->setExpirationHops(1);
$orderNS->wantToOrder = true;


Widok tej akcji wygląda mniej więcej tak:
Kod
<?php echo $this->action('index', 'login'); ?>
<?php echo $this->action('register', 'user'); ?>

Dalej w akcji /login/index robie w ten sposób:
Kod
         require_once 'Zend/Session/Namespace.php';
           $orderNS = new Zend_Session_Namespace('order');
  
           if( $orderNS->wantToOrder !== null ) {
               print 'ustawiam NS';
               $orderNS = new Zend_Session_Namespace('order');
               $orderNS->setExpirationHops(1);
               $orderNS->wantToOrder = true;
           }


No i po kliknięciu w zaloguj i przejsciu na akcje /login/login
Kod
  require_once 'Zend/Session/Namespace.php';
  $orderNS = new Zend_Session_Namespace('order');
  Zend_Debug::dump($orderNS->wantToOrder);

Wynikiem jest NULL
Chciał bym aby w każdym kroku rejestracji / logowania jeśli jest coś w Zend_Session_Namespace('order') to przedłużyć sesję o jeszcze jednego "Hopsa" i w odpowiednim momencie przekierować na formularz skłądania zamówienia.
Problem polega na tym, że gdy użyje metody setExpirationHops raz i strona się przeładuje to następnym razem mimo iż ustawie hopsy na 1 to namespace pamięta, że strona raz się już przeładowała a ja nie wiem jak długo użytkownikowi zajmie logowanie = na ile ustawiac hopsy w kazdym z kroków - użytkownik może przecież pomylić się niejednokrotnie przy logowaniu.
Proszę o pomoc.
Go to the top of the page
+Quote Post
pgrzelka
post 21.05.2009, 12:29:06
Post #2





Grupa: Zarejestrowani
Postów: 313
Pomógł: 24
Dołączył: 9.08.2008
Skąd: Kielce

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


wydaje mi się że trochę za bardzo przekombinowałeś

w pierwszym kroku gdy skrypt wykryje że osoba jest niezalogowana powinieneś w sesji ustawić zmienną 'back_url' z adresem na który powinien skrypt powrócić po zalogowaniu, potem przekierowujesz do formularza logowania, i po poprawnym zalogowaniu sprawdzasz czy w zmiennych sesji jest 'back_url', jeśli tak to przekierowujesz na ten adres.


--------------------
Go to the top of the page
+Quote Post
sel
post 21.05.2009, 14:03:35
Post #3





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 22.08.2007
Skąd: Gdańsk / Chełmno

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


Bałem się sytuacji w której w sesji zostanie zmienna back_url (np.: pomyłkowe kliknięcie w "Składam zamówienie" / zmiana zdania / sesja z wczoraj) a użytkownikowi w trakcie robienia zaków zechce się zalogować ale nie po to żeby składać zamówienie.
To jednak abstrakcyjna sytuacja. Jeśli się zdarzy to bardzo żadko.
Dzięki za naprostowanie:)
Go to the top of the page
+Quote Post
chlebik
post 22.05.2009, 22:36:40
Post #4





Grupa: Zarejestrowani
Postów: 113
Pomógł: 5
Dołączył: 12.09.2006
Skąd: Pruszków/Warszawa

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


No i najlepiej zrob to w formie pluginu do front controllera - to sobie bedziesz mogl przekierowywac w ogole przed rozpoczeciem dispacha(u) (nie wiem jak to spolszczyc smile.gif )


--------------------
"Człowiek dążący do swego celu może być skuteczny tylko w przypadku, jeśli każdą minutę swego życia wykorzysta z maksymalną korzyścią dla osiągnięcia zaplanowanego celu. Jeśli stworzył dla siebie system kar i karze sam siebie za każdą zmarnowaną minutę. Człowiekowi w zupełności wystarczą 3-4 godziny snu, cały pozostały czas może być wykorzystany dla osiągnięcia upragnionego celu." -- Wiktor Suworow
Java devBlog
KulturalnyChlebik
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 9.08.2025 - 15:28