• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Sprawdzanie czy dany użytkownik istnieje przy pomocy ajaxa - symfony 4

VPS Starter Arubacloud
0 głosów
219 wizyt
pytanie zadane 3 września 2018 w PHP przez BetBet Użytkownik (550 p.)

Witam,
Napisałem prostą metodę do sprawdzania czy podany e-mail lub użytkownik istnieje która zwraca tablicę z danymi - jesli istnieje true jesli nie - false
 

['username' => 'true', 'email' => 'false']

do metody trzeba podać dwa argumenty - czyli username i email jaki wprowadził użytkownik.
Chcę zrobić podpowiedź dla użytkownika, czy podany przez niego e-mail został już zajęty - powiedzmy użytkownik cos wpisuje i po zdarzeniu onfocusout wyświetla mu się podpowiedź czy wszystko jest ok a może dana nazwa/email jest zajęta.
Teraz pytanie, jak przekazać do routa informacje które wprowadził użytkownik? taka informacja która może pomóc mi pomóc - używam adnotacji i jQuery, wiem że można to ajaxem zrobić ale nie mam pojecia jak się za to zabrać.
Prostym rozwiązaniem było by pobranie wszystkich nazw użytkowników i e-maili a potem sprawdzenie czy podane informacje zawierają się w tych z bazy ale było by to chyba okropne rozwiązanie - ale za to tak potrafię zrobić ^^
 

2 odpowiedzi

+1 głos
odpowiedź 3 września 2018 przez Ehlert Ekspert (214,220 p.)
Po prostu wysyłasz ajaxem request http, metoda get. Taki endpoint IMHO nie powinien nic zwracać. Jeśli user z takim mailem istnieje zwracasz pusty response z kodem 200, jak nie istnieje 404.

Fetch wszystkich emaili to najgorsze co można zrobić.

Jeśli chcesz dobrze zabezpieczyć aplikację ustaw aby endpoint obsługiwał tylko requesty XHR oraz skonfiguruj odpowiednio nagłówki dla Corsa.
+1 głos
odpowiedź 3 września 2018 przez Tomek Sochacki Ekspert (227,490 p.)
Możesz po prostu strzelać do back-endu z zapytaniem o dany email, czy istnieje taki w bazie i robić to np. po każdym wciśniętym klawiszu albo jakoś nieco odwlec w czasie. Można to załatwić w pewnym sensie gotowcem przy użyciu rxjs i metod switchMap orad debounceTime aby anulować żądania jeśli wpadnie jakiś nowy strumień plus opóźnianie strzałów do API np. o 500ms, chodzi o to, aby nie strzelać niepotrzebnie do serwerka co każdy klawisz jeśli ktos szybko pisze.
komentarz 3 września 2018 przez BetBet Użytkownik (550 p.)
edycja 4 września 2018 przez BetBet
Dobra, już chyba wszystko wiem, dzieki!

Podobne pytania

0 głosów
1 odpowiedź 277 wizyt
pytanie zadane 21 maja 2019 w PHP przez hiper007 Stary wyjadacz (11,270 p.)
0 głosów
1 odpowiedź 256 wizyt
0 głosów
0 odpowiedzi 112 wizyt
pytanie zadane 1 marca 2018 w PHP przez `Krzychuu Stary wyjadacz (13,940 p.)

93,030 zapytań

141,992 odpowiedzi

321,294 komentarzy

62,376 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...