Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]wypisanie kilku wyjątków
Forum PHP.pl > Forum > Przedszkole
kto$
Poszukuję informacji na temat wypisaniu kilku wyjątków.
Przykładowo robię obsługę wyjątków dla formularza

  1. try{
  2. if(!wypelnione_pola($_POST)) //oddzielna funkcja do sprawdzania czy pola nie są puste
  3. throw new Exception('Musisz wypełnic wszystkie pola w formularzu kontaktowym');
  4. if(!prawidlowy_email($email))
  5. throw new Exception('Musisz podac prawidłowy e-mail.');
  6.  
  7. if(strlen($imie)> 30)
  8. throw new Exception('Imię nie moze przekraczac 30 znaków');
  9.  
  10. if(strlen($imie)< 3)
  11. throw new Exception('Imię musi miec przynajmniej 3 znaki');
  12.  
  13. [...]
  14.  
  15. ini_set('display_errors','1');
  16. }
  17.  
  18. catch (Exception $e){
  19. echo $e->getMessage();
  20. }

Wiadomo wychwyci błąd, ale jeden i zakończy na tym. Mi natomiast chodzi o to, żeby wypisało kilka czyli np: adres e-mail jest niepoprawy, imie musi miec przynajmniej 3 znaki itd.

Będę wdzięczny za pomoc w namierzeniu jakichś materiałów jak takie coś zrobic.

Pozdrawiam
zordon
Skoro chcesz mieć wszystkie wiadomości błędów, a wyjątki i tak byś łapał w tej samej funkcji to nie musisz ich stosować. Łapać kilku wyjątków się nie da, możesz co najwyżej łapać poprzedni przy następnym sprawdzeniu i "dopisywać" do niego wiadomość... co jest totalnym bezsensem
Najłatwiej:
  1.  
  2. $errors = array();
  3.  
  4. if(!wypelnione_pola($_POST)) //oddzielna funkcja do sprawdzania czy pola nie są puste
  5. $errors[] = 'Musisz wypełnic wszystkie pola w formularzu kontaktowym';
  6. if(!prawidlowy_email($email))
  7. $errors[] = 'Musisz podac prawidłowy e-mail.';
  8.  
  9. if(strlen($imie)> 30)
  10.  
  11. $errors[] = 'Imię nie moze przekraczac 30 znaków';
  12.  
  13. if(strlen($imie)< 3)
  14. $errors[] = Imię musi miec przynajmniej 3 znaki';
  15.  
  16. [...]
  17.  
  18. error_reporting(E_ALL);
  19. ini_set('display_errors','1');
  20.  
  21.  
  22. $i = 0;
  23. while($errors)
  24. echo $errors[$i++] . <br />';
  25.  
  26.  
kto$
Dzięki za pomoc
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.