![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 555 Pomógł: 84 Dołączył: 20.02.2008 Skąd: Małopolska Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Mam prosty formularz rejestracyjny na stronie, którego pola są sprawdzane za pomocą JS. I schodki zaczynają się w przypadku sprawdzania nicka usera. Nie mam zielonego pojęcia jak wprowadzić do mojego skryptu funkcję która by sprawdzała czy dany nick istniaje już w bazie danych czy też nie. Jak Wy rozwiązaliście ten problem? -------------------- Wieloprocesowość i wielowątkowość w PHP, poznaj Kraken PHP!
Serwer HTTP i WebSocket w PHP | Promise/A+ Strona Domowa | Elradia MMORPG FireFox: make the web better. |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 2 592 Pomógł: 445 Dołączył: 12.03.2007 Ostrzeżenie: (0%) ![]() ![]() |
Np sprawdzając w bazie czy jest już taki login zwykłym selectem (SELECT `ID` FROM `USERS` WHERE `LOGIN`=$login;), albo poprzez insert i sprawdzenie wyniku działania: jeśli wstawił - takigo loginu nie było, a jeśli nie - to sprawdzenie czy pojawił się błąd typu 'Duplicate entry for key...' (oczywiście musisz mieć założony unikat na kolumne login)
Jeśli sprawdzasz formularz javascriptem, to możesz użyć ajaxa, który po opuszczeniu pola z loginem sprawdzi czy już taki jest w bazie. -------------------- |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 274 Pomógł: 35 Dołączył: 18.07.2008 Skąd: Kielce Ostrzeżenie: (0%) ![]() ![]() |
Metodą najlepszą jest użycie ajaxa jednak jeśli nie umiesz to wczytaj do tablicy w js nicki z twojej tabeli a potem przeszukaj tabelę w js za pomocą prostego for i if. Jednak mało efektywna taka funkcja przy dużej liczbie userów.
-------------------- "Tylko dwie rzeczy są nieskończone: wszechświat oraz ludzka głupota,
choć nie jestem pewien co do tej pierwszej." Albert Einstein Wirtualny Rynek Predykcyjny |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 555 Pomógł: 84 Dołączył: 20.02.2008 Skąd: Małopolska Ostrzeżenie: (0%) ![]() ![]() |
Myślałem nad tym by zrobić to w taki sposób:
Ajaxem uruchomić plik PHP, który sprawdziłby czy dany nick jest już w bazie. Jeżeli tak to tworzyłby niewidoczny div o zawartości true, albo jeżeli nie to zawartość byłaby false. Potem Ajax by sprawdzał zawartość tego div'a i generował odpowiedni komunikat. Czy jest to dobre wyjście? -------------------- Wieloprocesowość i wielowątkowość w PHP, poznaj Kraken PHP!
Serwer HTTP i WebSocket w PHP | Promise/A+ Strona Domowa | Elradia MMORPG FireFox: make the web better. |
|
|
![]()
Post
#5
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
Hmm, czyli
ajax sprawdza bazę -> generuje diva -> sprawdza jego zawartość -> wyświetla komunikat lub ajax sprawdza bazę -> wyświetla komunikat ? To teraz sam pomysl co lepsze ![]() |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 555 Pomógł: 84 Dołączył: 20.02.2008 Skąd: Małopolska Ostrzeżenie: (0%) ![]() ![]() |
No tak, ale jak pobrać do Ajaxa wynik działania PHP inaczej niż przez stworzenie niewidocznego diva? ;p
I dokładnie rzecz biorąc to byłoby tak: Ajax otwiera plik PHP -> [PHP] sprawdza dostępność nicka -> [PHP] generuje diva o zawartości true/false -> [AJAX] pobiera zawartość diva -> [AJAX] wyświetla odpowiedni komunikat Ten post edytował Skie 23.07.2008, 20:17:35 -------------------- Wieloprocesowość i wielowątkowość w PHP, poznaj Kraken PHP!
Serwer HTTP i WebSocket w PHP | Promise/A+ Strona Domowa | Elradia MMORPG FireFox: make the web better. |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 2 592 Pomógł: 445 Dołączył: 12.03.2007 Ostrzeżenie: (0%) ![]() ![]() |
Po prostu:
Ajax otwiera plik PHP -> [PHP] sprawdza dostępność nicka i zwraca true/false -> [AJAX] (funkcja zwrotna js) wyświetla odpowiedni komunikat w zależności od tego co zwraca PHP -------------------- |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 53 Pomógł: 10 Dołączył: 17.01.2008 Ostrzeżenie: (0%) ![]() ![]() |
Właśnie zrobiłem sobie taki formularz u mnie wygląda to tak (tak jak napisał vokiel ):
mam nadzieje ze pomogłem (o ile problem nie został już rozwiązany) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 12:35 |