• 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

Object Storage Arubacloud
0 głosów
157 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 (212,790 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,510 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ź 256 wizyt
pytanie zadane 21 maja 2019 w PHP przez hiper007 Stary wyjadacz (11,270 p.)
0 głosów
1 odpowiedź 219 wizyt
0 głosów
0 odpowiedzi 110 wizyt
pytanie zadane 1 marca 2018 w PHP przez `Krzychuu Stary wyjadacz (13,940 p.)

92,615 zapytań

141,465 odpowiedzi

319,782 komentarzy

61,997 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...