Wykryto działanie AdBlocka!

Prawdopodobnie masz właczonego Adblocka. Korzystanie z bloga jest całkowicie darmowe. Jeśli jednak chcesz docenić prace autora, wyłacz blokowanie reklam dla tej witryny, aby jeszcze bardziej zmotywowac autora do dalszej pracy oraz częstszej publikacji artykułów.

Dziękuje :)

Treść główna bloga

Artykuły

Filtrowanie danych w PHP – filter_var()


Filtry w PHP W PHP mamy wiele funkcji, dzięki którym możemy filtrować dane przechodzące przez nasz skrypt. W PHP 5 mamy możliwość używania między innymi takich funkcji jak: filter_var() czy też filter_has_var(). Dziś przedstawię w jaki sposób korzystać z tych dość nowych funkcji.

1. filter_has_var()
Dzięki tej funkcji sprawdzamy jaką metodą została przesłana informacja z formularza.

a) Prosty formularz:

Plik check.php – sprawdzanie danych z formularza.

Inne możliwości:

  • INPUT_GET
  • INPUT_COOKIE
  • INPUT_SERVER
  • INPUT_ENV

2. filter_var()
Dzięki tej funkcji możemy sprawdzić poprawność mn.i poprawność adresu email, adresów URL czy też adresów IP.

a) Adres URL:

b) Adres E-mail

c) Poprawność adresów IP

3. filter_list()
Funkcja zwracająca listę dostępnych filtrów.

4. filter_id()
Funkcja zwraca nam id, danej możliwości walidacji.

5. filter_input()

Przykładowy formularz:

Plik check.php

Dzięki tym filtrom możemy skutecznie sprawdzać czy przesyłane do skryptu dane są poprawne.

  • Warto wspomnieć, że wiele filtrów, na przykład FILTER_EMAIL lub FILTER_URL uznaje ciagi znaków zgodne z danym RFC za błędne – krótko mówiąc: nie przepuszcza poprawnych wartości. Dotyczy to raczej umyślnie udziwnianych adresów, ale trzeba o tym pamiętać.

  • Hyh

    @Sobak: miałem kiedyś taką sytuację właśnie, w tamtym serwisie podmieniłem na prostszą funkcję w regexp, ale ogólnie stosuje dalej FILTER_EMAIL.

  • @Hyh: ja także stosuję filter_var() do walidacji emaili i adresów URL. Odrzucane przypadki to najczęściej jakoś mocno naciągnięte pomysły korzystające ze wszystkiego co udostępniono w RFC. Zakładam więc, że osoby posługujące się takimi adresami zdają sobie sprawę, że w wielu miejscach mogą sprawiać one problemy. Jeśli nie… no trudno 🙂 to już nie jest nasz problem.