Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Symfony]Komponenty i przekierowanie do akcji
Forum PHP.pl > Forum > PHP > Frameworki
filip11
Witam,

używam symfony 1.4.8. Tworze serwis, które logowanie będzie zrealizowane przy pomocy komponentu. To znaczy będzie cały czas wyświetlać się w jakiejś części strony pudełko z formularzem logowania. Problem polega na tym, że jak użytkownik wpisze dane i kliknie przycisk zaloguj, co cały serwis, czyli też główna zawartość strony przechodzi do akcji podlinkowanej w formularzu logowania. Czy jest jakieś sposób, żeby to obejść, czy może inaczej realizuje się ten temat?

Z góry dziękuję za sugestie smile.gif
arecki
Możesz do formularza nie przekazywać adresu do którego ma być kierowany a wtedy zostanie POST wysłany do bieżącej strony. A w komponencie już sobie przerobisz to. Tylko o ile mnie dobrze pamięć nie myli, komponenty są wywoływane z szablonu i może być tak że w komponencie który załaduje się wcześniej niż ten z logowaniem napisane będzie że user się nie zalogował a w komponencie z logowaniem user będzie zalogowany.
filip11
Dzięki za odpowiedź smile.gif, czyli trzeba raczej kombinować, ktoś inny praktykuje inne rozwiązania? Może pozbawione ryzyka, o którym pisał arecki?
l3l0
Witam,

Możesz spróbować użyć referera. Zobacz sobie jak to zrobione jest w sfDoctrineGuardPlugin np tutaj: http://trac.symfony-project.org/browser/pl...tions.class.php

Pozdrawiam
filip11
Próbowałem tak robić, ale dostawałem komunikaty o zbyt dużej ilości przekierowań... :/ Dzięki i tak za koncepcję smile.gif
jaro87
To zanim zrobisz redirecta sprawdź czy wysłano formularz metodą post. Po redirekcie isMethod('post') zwróci false i będziesz miał tylko jedno przekierowanie.

  1. if ($request->isMethod('post'))
  2. {
  3. $this->redirect($request->getReferer());
  4. }
  5.  
wdev
Na stronie, nad którą teraz pracuję używam do tego AJAX-a, z zapytaniem do standardowego sfGuarda. Jak formularz otrzyma odpowiedź modułu sfGuard, że użytkownik jest zalogowany, to JS przeładowuje stronę.
filip11
Będę musiał to ogarnąć pewnie, na razie nie używam tej wtyczki,a le pewnie JS da radę zastosowac i w moim przypadku smile.gif Dzieki
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.