Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Walidacja danych z formularza
Forum PHP.pl > Forum > Przedszkole
gizmo1985
Hej winksmiley.jpg
Szukałem, ale nie znalazłem, czy są może jakieś gotowe skrypty w PHP, które można łatwo zaprzęgnąć do swojej strony, a które pomagają w walidacji formularzy ? smile.gif
thek
Zazwyczaj takie skrypty to biblioteki lub helpery w konkretnych frameworkach. Przykładem jest choćby Formo w KohanaPHP. Może zerknij sobie w jego kod i podpatrując napisz coś własnego.
gizmo1985
Generalnie nie zależy mi na jakiejś wielkiej walidacji...potrzebuję tylko na poziomie podstawowym zabezpieczyć formularz "pokazowo", do zaliczenia winksmiley.jpg A nie wiem, czy pisanie wszystkiego na piechotę jest profesjonalne tongue.gif
bolverk
Pokazowe zabezpieczenie walidacji czy tylko na gotowca nie jest podejściem profesjonalnym. Tak jak inni Ci radzą napisz coś samemu, a będziesz wiedzieć jak to działa i po testach będziesz wiedzieć gdzie robisz błędy.
gizmo1985
No ok. Login sobie potrafię sprawdzić...t.zn. czy pola nie są puste, czy login się nie powtarza...ale jak sprawdzić poprawność daty urodzenia ? maila ? Bo tego już nie pojmuję winksmiley.jpg tongue.gif
bolverk
Dla dat i maili da się zastosować wyrażenia regularne. zapoznaj się z nimi oraz z funkcją preg_match.
thek
Jeśli już chcesz czegoś użyć to polecam przeczytanie artykułów o bezpieczeństwie kilku i używanie choćby filter_var, ctype, mysql_real_escape_string czy wielu innych wbudowanych funkcji zależnie od potrzeb. a tych jest naprawdę wiele. Tylko trzeba chcieć coś przeczytać, bo gotowe skrypty dostępne w necie nieraz są pisane przez amatorów i zawierają błędy. Tylko korzystanie ze sprawdzonych rozwiązań daje Ci w miarę jakąś pewność, że ciężko już coś zepsuć.
gizmo1985
No ok winksmiley.jpg zagłębiam się w temat i w funkcje podane wyżej winksmiley.jpg, ale jak zrobić np, żeby to maila rozróżniało ? smile.gif

  1. <?php
  2. $subject = "abcdef";
  3. $pattern = '/^def/';
  4. preg_match($pattern, $subject, $matches, PREG_OFFSET_CAPTURE, 3);
  5. print_r($matches);
  6. ?>



Juz mam smile.gif

  1. $wzorzec = '/[a-zA-Z0-9.\-_]+@[a-zA-Z0-9\-.]+\.[a-zA-Z]{2,4}/';
  2. preg_match_all($wzorzec, $tekst, $wyniki);


Jak zrobić z tego:

  1. <?php
  2.  
  3. $subject = "abcdef";
  4.  
  5. $wzorzec = '/[a-zA-Z0-9.\-_]+@[a-zA-Z0-9\-.]+\.[a-zA-Z]{2,4}/';
  6.  
  7. $wynik = preg_match($wzorzec);
  8.  
  9. ?>

żeby po sprawdzeniu pola formularza wyświetlał komunikat o poprawności pola ?
thek
filter_var jest pewniejsze. Jest tam też gotowiec do walidacji maili oraz adresów www smile.gif Poczytaj a sam zobaczysz jakie to proste zwalidować oba.
gizmo1985
Albo to jest takie proste, albo źle zrozumiałem biggrin.gif

  1. <?php
  2. if(!filter_var("someone@example....com", FILTER_VALIDATE_EMAIL))
  3. {
  4. echo("E-mail is not valid");
  5. }
  6. else
  7. {
  8. echo("E-mail is valid");
  9. }
  10. ?>


czyli zamiast
  1. "someone@example....com"


mogę użyć ?

  1. $_POST['emai']



Chyba jednak nie zrozumiałem biggrin.gif
Sky_walker
tak
thek
Możesz użyć tego post w filter_var jaki podałeś i sam sprawdź winksmiley.jpg Nie będzie za Ciebie nikt sprawdzał tak elementarnych rzeczy...
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.