Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Symfony] Formularz logowania z sfGuardPlugin
Forum PHP.pl > Forum > PHP > Frameworki
MickDev
Witam,

We frontendzie wstawiam formularz logowania dostarczany przez sfGuardPlugin. Logowanie działa poprawnie. Problemem jest to, że jak formularz logowania zawiera błędy wyłapywane przez walidator (brak loginu lub hasła) to nie trafiają one do wstawionego panelu logowania ale do zmiennej sf_Content. W związku czym powstają dwie instancje formularzy. Ta wstawiona przeze mnie i ta wstawiona w miejsce treści strony wraz z wyświetlonymi błędami. Jak zrobić to tak, by błędy pojawiały się w moim formularzu ?

Widok dla komponentu logowania:
  1. <form action="<?php echo url_for('@sf_guard_signin') ?>"
  2. method="post">
  3. <table>
  4. <?php echo $login_form ?>
  5. </table>
  6.  
  7. <input type="submit" value="<?php echo __('ZALOGUJ') ?>" />
  8. <a href="<?php echo url_for('@sf_guard_password') ?>"><?php echo __('Zapomniałeś hasła?') ?></a>
  9. </form>



Symfony: 1.4.8

destroyerr
Te dwie instancje nie powstają same. Rozumiem, że formularz tworzysz i w akcji logowania i w komponencie? To zrób tak, żeby w komponencie tworzyć formularz tylko wtedy kiedy akcja logowania go nie stworzyła. O ile w ogóle dobrze zrozumiałem Twój problem.

Wydaje mi się, że taki lub podobny wątek już był.
MickDev
Tworzę formularz logowania w komponencie. Wyświetlam go, jeśli użytkownik nie jest zalogowany. W przeciwnym wypadku wyświetlam szczegóły konta użytkownika. Komponent includuję w layoucie ( w bocznej części strony). Jeśli użytkownik poda niepoprawne dane, w treści strony (środek) pojawia się drugi formularz z błędami z walidatora.
toffiak
Rozwiąć problem można na co najmniej 2 sposoby:

Po podaniu nieprawidłowych danych przekierować użytkownika na: przykładowo stronę główną z informacją flashową o niepoprawnych danych bez wypisywania dokładnych błędów i prośbą o ponowne podanie danych.

Wykorzystać ajaxa i w przypadku poprawnych danych wyświetlić komponent dla zalogowanego użytkownika, w przypadku niepoprawnych danych zwrócić komponent z formularzem oraz jego błędami.
MickDev
O tych dwóch opcjach wiem. Chodzi o coś zupełnie innego. Mianowicie, po kliknięciu loguj login i hasło są wysyłane do akcji (@sf_guard_signin), która sprawdza poprawność danych i loguje użytkownika. Jeśli dane były niepoprawne przekierowuje mnie do akcji login, która w treści strony wstawia kolejną instancję formularza (z podanymi błędami). Pytanie brzmi, jak odebrać znalezione błędy i wyświetlić je w moim formularzu ?
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.