![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 1 168 Pomógł: 126 Dołączył: 5.02.2010 Skąd: Świdnica Ostrzeżenie: (0%) ![]() ![]() |
Witam,
tak jak w temacie, nie działa mi redirectResponse, ale uwaga: tylko w jednej metodzie:
indexAction: sprawdza metodę przesyłanych danych, tworzy formularz (podejrzewam, ze w symfony można śmiało stworzyć osobną klasę do tworzenia konkretnego formularza coś na wzór wykorzystanego przeze mnie LoginModel?) logoutAction: tutaj wszystko działa sprawnie, robi się redirect do strony głównej panelu... validate: tutaj debuggując wychodzi na to, że też wszystko przechodzi sprawnie login: dopiero tutaj dzieje się chyba jakaś magia... dodając w tej metodzie var_dump('asd') zostaje ono wyświetlone, gdy wyświetliłem var_dump(redirectResponse) (oczywiście stworzyłem z tego zmienną), to też zostało coś tam wyświetlone, ale samo przekierowanie już nie działa przez co mam problem, bo po wykonaniu formularza poniżej, otwiera się całość, tworzy się sesja, ale zostaje mi ten formularz logowania na środku dalej... Kod {% extends 'WebsiteCoreBundle:Default:base.html.twig' %} {% block content %} <div id="login-panel"> <div id="login-panel-title"> <p>CMS</p> <p>Logowanie</p> </div> <form action="{{ path('cms_login') }}" method="post"> {{ form_widget(login_form) }} <div id="remember-me"><label for="remember-me">Zapamiętaj mnie</label><input type="checkbox" name="remember-me" checked /></div> <input type="submit" name="login_submit" value="Zaloguj" /> <a href="#zapomnialem" id="forgot-password">Zapomniałem hasła</a> </form> </div> {% endblock %} Przy okazji proszę o jakieś uwagi dotyczące klasy. Ten post edytował Szymciosek 11.05.2013, 11:45:59 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
1. Po co w ogóle tworzysz od podstaw logowanie? Symfony posiada wbudowany cały framework od obsługi uwierzytelniania i autoryzacji - skorzystaj z niego. O frameworku od obsługi formularzy już nie wspominam, bo zrobiłem to wcześniej w innym wątku.
2. Po co tworzysz nowy obiekt Request (linia #24)? 3. Nie wykonuje Ci przekierowania bo o ile metoda login() zwraca obiekt odpowiedzi o tyle metoda validate() nie robi z nim już niczego, a powinna go zwrócić. Ten post edytował Crozin 11.05.2013, 11:53:49 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 1 168 Pomógł: 126 Dołączył: 5.02.2010 Skąd: Świdnica Ostrzeżenie: (0%) ![]() ![]() |
ad 1) Chodzi o to: http://symfony-docs.pl/book/security.html#index-4 ? Przy czym formularz chyba już zostaje? Czy dalej nie o to Ci chodziło?
ad 2) Jak inaczej sprawdzę czy jest metodą post przesyłany? Może w sumie to nie ma sensu, a lepiej sprawdzić czy np. jest przesyłany submit z formularza logowania. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
1. Korzystaj z oficjalnej dokumentacji - na tej polskiej nie wiadomo czy mamy do czynienia z wersją 2.0.x, 2.1.x czy 2.2.x.
2. Powinienem był od razu zaznaczyć, że formularz logowania jest obsługiwany w Symfony nieco "indywidualnie" ze względu na sposób działania komponentu Security. Jest to jeden z bardziej zagmatwanych elementów Symfony i dopóki nie zrozumiesz jego działania dopóty nie powinieneś brać się za tworzenie własnego uwierzytelniania/autoryzacji. Poczytaj wszystko co znajdziesz w dokumentacji na ten temat, przeanalizuj źródła (najlepiej debuggerem, żeby zobaczyć sobie, które elementy wykonują się w danym momencie). Możesz również poczytać sobie n/t Spring Security - Symfony właśnie sklonował ten komponent ze Springa - w sensie... dosłownie sklonował, włącznie z nazwami klas czy kluczy konfiguracyjnych :]. Na razie nie polecałbym Ci tworzyć niczego na własną rękę, wykorzystaj przykłady z dokumentacji, bądź skorzystaj z wspominanego FOSUserBundle. Cytat Jak inaczej sprawdzę czy jest metodą post przesyłany? Pytałem, po co tworzysz nowy. Obiekt Request jest już dostępny w DIC-u, z poziomu kontrolera możesz się do niego odwołać poprzez $this->getRequest().
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 30.09.2025 - 03:35 |