Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]wypisanie kilku wyjątków
kto$
post 10.11.2010, 14:09:40
Post #1





Grupa: Zarejestrowani
Postów: 33
Pomógł: 1
Dołączył: 9.05.2010

Ostrzeżenie: (0%)
-----


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

Ten post edytował kto$ 10.11.2010, 14:10:57
Go to the top of the page
+Quote Post
zordon
post 10.11.2010, 14:17:08
Post #2





Grupa: Zarejestrowani
Postów: 358
Pomógł: 78
Dołączył: 4.11.2008
Skąd: Kraków

Ostrzeżenie: (0%)
-----


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.  


Ten post edytował zordon 10.11.2010, 14:17:31
Go to the top of the page
+Quote Post
kto$
post 10.11.2010, 14:26:50
Post #3





Grupa: Zarejestrowani
Postów: 33
Pomógł: 1
Dołączył: 9.05.2010

Ostrzeżenie: (0%)
-----


Dzięki za pomoc
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 03:19