Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [klasa][php] Validation
PiotrekM
post
Post #1





Grupa: Zarejestrowani
Postów: 130
Pomógł: 6
Dołączył: 20.12.2009

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


Witam,
napisałem dla siebie klasę walidacji. Nigdy nie korzystałem z walidacji, tak więc nie wiem czy jest dobrze napisane.
kod się nie zmieścił, więc wrzuciłem na stronę typu no-paste
na nopaste.pl
na wklej.org
Użycie:
  1. validation::checkString(array('test' => 'lorem ipsum dolor sit amet'));
  2.  
  3. validation::setValidations(array('test' => array(
  4. 'maxlenght' => 3,
  5. 'minlenght' => 100,
  6. 'between' => array(10,11),
  7. 'type' => 'bool',
  8. 'maxtimechar' => 'a[spilit]0',
  9. 'required' => true,
  10. 'regex' => '/([0-9]+)/'
  11. )));
  12.  
  13. echo (validation::isValid('test')) ? 'true' : 'false';
  14.  
  15. if( count( @validation::$error['test']) > 0) {
  16.  
  17. echo '<ul>';
  18.  
  19. foreach( validation::$error['test'] as $error) {
  20.  
  21. echo '<li>' . $error . '</li>';
  22. }
  23.  
  24. echo '</ul>';
  25. }

Opcje walidacji
Kod
maxlenght - maksymalna ilość znaków w stringu
minlenght - minimalna ilość znaków
between - w tablicy: minimalna oraz maksymalna ilość znaków
type - typ
maxtimechar - maksymalna liczba wyrazów bądź znaków w stringu (słowo oddzielone od liczby [spilit] (a[spilit]5))
required - string nie może być pusty, jeżeli damy true
regex - regex

pola z błędami są publicznie dostępne, także można jest dowolnie zmieniać.

Ten post edytował PiotrekM 23.03.2010, 19:32:36
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Zyx
post
Post #2





Grupa: Zarejestrowani
Postów: 952
Pomógł: 154
Dołączył: 20.01.2007
Skąd: /dev/oracle

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


PiotrekM -> ech, przeczytaj wszystko jeszcze raz, ale ze zrozumieniem... mówimy właśnie o tym Twoim "numeric", które nie zadziała, bo do sprawdzenia czy pole zawiera liczbę użyłeś funkcji is_int(). Nie rozumiesz w ogóle, jak ta funkcja działa - ona nie sprawdza, czy wartość jest liczbą, tylko czy wartość zmiennej PHP ma aktualnie typ liczbowy, a to dwie różne rzeczy:

  1. <?php
  2. var_dump(is_integer('15')); // TAK WŁAŚNIE WYGLĄDA LICZBA W $_GET!


Piszemy przecież cały czas, że w tablicach $_GET, $_POST wszystkie wartości są ciągami tekstowymi, więc bez względu na to, jaką wartość będą zawierać, is_int() zwróci Ci dla nich false i możesz pożegnać się np. ze sprawdzeniem czy przekazany do skryptu ID jest poprawny... do takiego sprawdzania się używa wyrażeń regularnych i funkcji z rodziny ctype_xxx().
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: 4.10.2025 - 19:44