Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Klasa walidacji formularza - porady
Blame
post
Post #1





Grupa: Zarejestrowani
Postów: 678
Pomógł: 124
Dołączył: 26.09.2009

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


Ostatnio wgłębiam się w programowanie obiektowe i postanowiłem sobie napisać klasę sprawdzającą pola formularza. O ile z samym sprawdzaniem nie mam problemu, to po prostu filtry i wyrażenia regularne to już ze zwracaniem wartości tak. A konkretnie chodzi mi o poinformowanie użyszkodnika o źle wprowadzonych danych. Na razie po prostu albo zwracam ciąg albo FALSE, jednak to wiąże się z następnymi if'ami czyli większą ilością kodu. Przeczytałem gdzieś, że można użyć wyjątków. Czy to się sprawdzi? Przyznam, że moja wiedza związana z wyjątkami to ledwie skutek googlowania od dwóch dni. Proszę więc o odpowiedź na moje pytanie i ew. nakierowanie mnie w temacie.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Pilsener
post
Post #2





Grupa: Zarejestrowani
Postów: 1 590
Pomógł: 185
Dołączył: 19.04.2006
Skąd: Gdańsk

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


A jeśli chcesz robić własną, to coś w stylu:
  1. function waliduj_data($date,$czypusty=0){
  2. if(!empty($date)){
  3. $tdate = split('[^0-9]',$date);
  4. if(checkdate((int)$tdate[1],(int)$tdate[0],(int)$tdate[2])){
  5. $data = mktime(0,0,0,$tdate[1],$tdate[0],$tdate[2]);
  6. }else{
  7. $error = 'niepoprawna data';
  8. }
  9. }else{
  10. if($czypusty==1){$error = 'wpisz datę';}
  11. }
  12. $tablica[1] = $data;
  13. $tablica[2] = ' value="'.$date.'"';
  14. if(empty($error)){
  15. $tablica[0] = TRUE;
  16. }else{
  17. $tablica[0] = FALSE;
  18. $tablica[3] = $error;
  19. }
  20. return $tablica;
  21. }
- zwracana jest tablica, która zawiera 0 - TRUE/FALSE w zależności od poprawności walidacji, 1 - wpisaną datę jeśli jest błędna lub uniksowy znacznik czasu, gdy data jest poprawna, 2 - value do wykorzystania w inpucie, 3 - komunikat błędu. Można dodać także klasę CSS i oczywiście interfejs Twojej klasy nie musi ograniczać się do wartości domyślnych lub możesz w ogóle komunikaty błędów ustawiać gdzie indziej i w inny sposób, np. zapisywać to w szablonach formularzy.

Najlepiej bym to widział tak, że tworzysz formularz np. w XML, gdzie dla każdego inputa ustawiasz typ, opcje, komunikaty błędów etc. a resztę załatwia PHP.
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 29.12.2025 - 23:30