Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: obsługa błędów
Forum PHP.pl > Forum > PHP
Apo
Witam
Mam takie pytanie. Od jakiegoś czasu pisze w php. No i gdy pisze naprzyklad aby sprawdzić dane w forularzu to robie to tak (przykładowo):
  1. <?php
  2. $danezformularza = htmlspecialchars(trim($_POST['danezformularza']));
  3. $danezformularza1 = htmlspecialchars(trim($_POST['danezformularza1']));
  4. ///// no i teraz
  5. if(empty($danezformularza))
  6. {
  7. $error .= 'Pole imie obowiązkowe';
  8. }
  9.  if(empty($danezformularza1))
  10. {
  11. $error .= 'Pole wiek obiwiązkowe';
  12. }
  13.  
  14. if($error) {
  15. echo $error;
  16. }
  17. else
  18. {
  19. //// dalsza część kodu
  20. }
  21. ?>


No i napisałem sobie funkcje która filtruje mi to
$danezformularza = htmlspecialchars(trim($_POST['danezformularza']));

Ale nie wiem co zrobić z tymi ostrzeżeniami. Jak to najwygodniej zrobić, aby nie pisać tak jak ja :?:
Opiszecie swoje sposoby.
vieri_pl
Tak jak zrobiłeś to Ty jest to najłatwieszy sposób, możesz stworzyć funkcję która będzie wyświetlała errory automatycznie, dajesz komunikaty do tablicy, tworzysz funckję która wyświetla komunikat o danym nr (takie rozwiązanie jest w smod cms), no i wyświetlasz to np taK:

  1. <?php
  2.  
  3. komunikat(2);
  4.  
  5. ?>


Przeanalizuj sobie jak to jest zrobione w smod CMS ja korzystam z takiego rozwiązania ponieważ jest ono na prawdę wygodne ! Aby zmienić tekst każdego komunikatu o błędzie bądź sukcesie modyfikujesz jeden plik, który jest odpowiedzialny za wszystkie komunikaty, które mają być wyświetlane...

Cytat
aby nie pisać tak jak ja


Wstydzisz się swojego kodu questionmark.gif laugh.gif
Apo
heh. Nie wstydze tylko takie rozwiązanie nie jest za bardzo estetyczne. Bo jeśli np dodam do tego jeszcze wyrażenie regularne to już bedzie niezły syf w kodzie.
Na każdym kroku trzeba sprawdzać dane z formularza. No i przydałaby się do tego hmm jakas klasa, tylko że niegdy takiego czegoś nie robiłem :roll2:
vieri_pl
Hmm jako że smod jest open source zapodam ci kod:

plik komunikaty.php

  1. <?php
  2.  
  3.  
  4. $kom = array();
  5.  
  6. $kom[1] = "Proszę wpisać nazwę, tytuł i treść strony <br /><a href="javascript:history.back();">&raquo; wróć</a>";
  7. $kom[2] = "Dane zostały pomyślnie zapisane";
  8. $kom[3] = "Wystąpił błąd, dane NIE zostały zapisane";
  9. $kom[4] = "Nie znaleziono żądanych danych";
  10. $kom[5] = "Strona została ukryta";
  11.  
  12. $liczbakomunikatow = 5;
  13.  
  14. ?>


funckja którą wstawiasz np do pliku funkcje.php:

  1. <?php
  2. function komunikat($tk)
  3. { 
  4. echo "<div>";
  5.  include_once("komunikaty.php");
  6. if ($tk>$liczbakomunikatow)
  7. {
  8.  echo "Błąd niezdefiniowany";
  9.  return;
  10. }
  11. else
  12. {
  13.  echo "$kom[$tk]";
  14. }
  15. echo "</div>";
  16.  }
  17.  
  18. define ('komunikat',0);
  19. ?>


Oczywiśćie includujesz obydwa pliki a wyświetlasz tak:

  1. <?php
  2. $kom[$tk];
  3. exit();
  4. ?>
Gdzie $tk to nr komunikatu...

Proste i fajnie zrobione...
Apo
No nawt dobry pomysył smile.gif. Jeśli macie jeszcze jakieś pomysły to zapodajcie winksmiley.jpg
vieri_pl
Jeśli dobry pomysł spróbuj to wdrożyć... albo skonstruować samemu podobną do tego funkcję...
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.