Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL] Z rejestracją.
Forum PHP.pl > Forum > Przedszkole
Orangutar132
Witam, mam dosyć poważny problem, ale dla was to zapewne błahostka...
Kawałek kodu:


  1. if (strlen($login) < 3 or strlen($login) > 30 or !eregi("^[a-zA-Z0-9_.]+$", $login)) {
  2. $blad++;
  3. echo '<span class="message errormsg">Proszę poprawny wprowadzić login (od 3 do 30 znaków).</span>';
  4. } else {
  5. $wynik = mysql_query("SELECT * FROM $tabela WHERE login='$login'");
  6. if (mysql_num_rows($wynik) <> 0) {
  7. $blad++;
  8. echo '<span class="message errormsg">Podana nazwa użytkownika została już zajęta.</span>';
  9. }
  10. }
  11. if (strlen($haslo) < 6 or strlen($haslo) > 30 ) {
  12. $blad++;
  13. echo '<span class="message errormsg">Proszę poprawnie wpisać hasło (od 6 znaków do 30 znaków).</span>';
  14. }
  15. if ($haslo !== $haslo2) {
  16. $blad++;
  17. echo '<span class="message errormsg">Podane hasła nie są ze sobą zgodne.</span>';
  18. }
  19. if (!eregi("^[0-9a-z_.-]+@([0-9a-z-]+\.)+[a-z]{2,4}$", $email)) {
  20. $blad++;
  21. echo '<span class="message errormsg">Proszę wprowadzić poprawnie adres email.</span>';
  22. } else {
  23. $wynik = mysql_query("SELECT * FROM $tabela WHERE email='$email'");
  24. if (mysql_num_rows($wynik) <> 0) {
  25. $blad++;
  26. echo '<span class="message errormsg">Podany adres e-mail jest już zajęty.</span>';
  27. }
  28. }
  29. if (!$resp->is_valid) {
  30. $error = $resp->error;
  31. echo '<span class="message errormsg">Proszę wpisać poprawnie wyrazy z obrazka.</span>';
  32. $blad++;
  33. }
  34.  
  35.  
  36. if ($blad == 0) {


Jednak teraz jak wykona się plik i dana osoba nie wpisze żadnych danych( puste pola ) to dostaję tyle informacji ile jest pustych pól. Chciałbym aby błędy pokazywały się pojedynczo tak jak na tej stronie https://server.buycraft.net/register Czyli jeżeli dana osoba pozostawiłaby wszystkie puste pola to i tak będzie tylko jeden błąd o nie uzupełnieniu pierwszego pola, jak uzupełni pierwsze pole, a reszta puste to pokaże się tylko informacja o tym, że nie pole 2 drugie jest puste. Myślę, że wyjaśniłem to miarę dokładnie.
radziopoke
to przy każdym wyświetleniu błędu sprawdź warunkiem if zmienną $blad czy nie jest większa niż zero. jeżeli równa 0 możesz wyświetlić błąd jeżeli większa to nie wyświetlaj. Chyba ta zmienna może być wykorzystana do tego a nie tylko po to czy w całym formularzu nie ma błędu smile.gif
CuteOne
1. eregi() jest przestarzałe i umożliwia włamanie - zamiennikiem jest preg_match()
2. rozumiem, że kod nie jest Twój i ściągnąłeś gotowca z neta inaczej sam byś doszedł do tego jak wyświetlać pojedyncze błędy.
- konstrukcją if else
  1. if() {
  2.  
  3. if() {
  4.  
  5. //itd
  6. }
  7. else {
  8.  
  9. }
  10. }
  11. else {
  12.  
  13. }


- konstrukcją sprawdzania zmiennej zawierającej błąd
  1. $blad = false;
  2.  
  3. if(cos && !$blad) {
  4.  
  5. }
  6. else {
  7.  
  8. echo 'blad';
  9. $blad = true;
  10. }
  11.  
  12. if(cos2 && !$blad) {
  13.  
  14. }
  15. else {
  16. echo 'blad';
  17. $blad = true;
  18. }

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.