Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Sprawdzenie czy wszystkie pola są wypełnione prawidlowo
Forum PHP.pl > Forum > Przedszkole
mczlowiek
Witam mam taki oto panel rejestrujący:
  1. <form action="rejestracja.php" method="post">
  2.  
  3. <tr>
  4. <td><font face=verdana size=1 color=black><b>Nazwa użytkownika:</b></td>
  5. <td><input type="text" name="username" size="40" maxlength="20" /><br /></td>
  6. </tr>
  7. <tr>
  8. <td><font face=verdana size=1 color=black><b>Hasło:</b></td>
  9. <td><input type="password" name="password" size="40" maxlength="20" /><br /></td>
  10. </tr>
  11. <tr>
  12. <td><font face=verdana size=1 color=black><b>Powtórz haslo:</b></td>
  13. <td><input type="password" name="password1" size="40" maxlength="20" /><br /></td>
  14. </tr>
  15. <tr>
  16. <td><font face=verdana size=1 color=black><b>Adres e-mail:</b></td>
  17. <td><input type="text" name="email" size="40" maxlength="50" /><br /></td>
  18. </tr>
  19. <tr>
  20. <td></td>
  21. <td><input type="checkbox" name="regulamin" value='tak'/><font face=verdana size=1 color=black>Przeczytałem i akceptuję regulamin</td>
  22. </tr>
  23. <tr>
  24. <td></td>
  25. <td><input type="submit" name="dodaj" value="Potwierdź rejestrację" /></td>
  26. </tr>
  27.  
  28. </form>

Jak widac dane idą do pliku rejestracja.php
w pliku tym dane te są wpisywane w odpowiednia table w bazie danych. Chcialbym jednak żeby najpierw odbylo się sprawdzenie czy wszystkie dane zostaly wpisane oraz czy zrobiono to w sposób prawidlowy. Wiem jak zrobić zeby sproawdzalo mi po koleji, np jesli ktos nie poda usernae to podspodem pojawi sie komunikat o błędzie. Jednak docelowo chcialbym aby nad <form> w momencie wpisania błędnych bądz nie wpisania żadnych danych wylistowallo mi listę błędów a nie tylko pierwszego błędu. Chodzi mi o to aby wyglądało to tak :



Teraz wygląda to tak:


Jak to zrobic?
Oraz chodzi mi także o to że w momecnie kiedy użytkownik wpisze poprawną nazwę użytkownika a nie poda hasł to żeby zapamiętal w polu tą nazwę użytkownika.

Prosze o pomoc
Zyx
Najlepszym rozwiązaniem będzie poszukiwanie lub napisanie we własnym zakresie jakiegoś systemu do generowania formularzy. Działa to na takiej zasadzie, że w PHP definiujesz tylko reguły i do jakiego pola są one podpięte. Następnie skrypt leci pętlą po wszystkich regułach i sprawdza zawartość poszczególnych pól. Jeśli wykryje błąd, dodaje komunikat do listy, ale nie kończy sprawdzania.

Dalej algorytm jest następujący: jeśli lista błędów zawiera choć jedną pozycję, formularz został źle wypełniony. Wtedy system ponownie generuje kod HTML formularza, a w atrybuty value wstawia odpowiednie wartości z $_POST, przepuszczone wcześniej przez funkcję htmlspecialchars() (spróbuj określić, dlaczego). Gdy błędów nie ma, wtedy system zwraca kontrolę skryptowi wraz z listą wpisanych przez użytkownika wartości, by można było coś z nimi zrobić.

Zaletą ogólnego systemu jest fakt, iż możesz za jego pomocą budować później też inne formularze na stronie i nie musisz dla każdego z nich wymyślać koła od nowa.
mczlowiek
Wszystko ładnie napisane tylko jak się do tego zabrać...?
Nie jestem na tyle obcykany aby to napisać w taki sposób jak mówisz...
Pilsener
Można to zrobić prostacko, korzystając ze zwykłego arsenału skrypciarza, tu masz tutka:
http://www.forumweb.pl/viewtopic.php?t=45742

Metoda ta będzie jeszcze lepsza, jak ją połączysz z systemem szablonów, a sam formularz trzymał w osobnym pliku/bazie. Wtedy wystarczy tylko modyfikacja bazy i formularza, a resztę zrobi skrypt.
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.