Filtr PHP
Filtr PHP służy do sprawdzania poprawności danych Filtr ze źródeł niepewnych, takich jak wprowadzanych przez użytkownika.
Co to jest filtr PHP?
Filtr PHP służy do sprawdzania poprawności danych Filtr ze źródeł niepewnych.
Test, walidacji i wprowadzania danych przez użytkownika filtr lub niestandardowych danych jest ważną częścią każdej aplikacji WWW.
Filtr rozszerzenie PHP ma na celu filtrowania danych łatwiejsze i szybsze.
Dlaczego warto korzystać z filtra?
Prawie wszystkie aplikacje internetowe są zależne od wejść zewnętrznych. Dane te zwykle pochodzą od użytkowników lub innych aplikacji (takich jak usługi internetowej). Przy użyciu filtrów, można zapewnić, że aplikacje uzyskać prawidłowy typ wejścia.
Należy zawsze zewnętrzne filtrowanie danych!
filtrowanie wejście jest najważniejsze kwestie związane z bezpieczeństwem aplikacji.
Co to są dane zewnętrzne?
- Dane wejściowe z formularza
- ciastka
- Dane Web services
- Zmienne serwerowe
- Wyniki zapytań baz danych
Funkcje i filtry
Aby filtrować zmienną, użyj jednej z następujących funkcji filtrujących:
- filter_var () - filtrowanie pojedynczej zmiennej w określonym filtrem
- filter_var_array () - do filtrowania wielu zmiennych tych samych lub różnych filtrów
- filter_input - Get jedną zmienną wejściową i przefiltrowanego
- filter_input_array - Get więcej zmiennych wejściowych i przez tego samego lub różnych filtrów, aby je filtrować
W poniższym przykładzie, używamy filter_var () Funkcja sprawdza liczbę całkowitą:
<?php $int = 123; if(!filter_var($int, FILTER_VALIDATE_INT)) { echo("不是一个合法的整数"); } else { echo("是个合法的整数"); } ?>
Powyższy kod wykorzystuje "FILTER_VALIDATE_INT" filtr do filtrowania zmienną. Ponieważ całkowita jest zgodny z prawem, więc powyższe wyjście kod będzie:
Jeśli spróbujemy użyć zmiennej nie jest liczbą całkowitą (takich jak "123abc"), to wyjście: "Integer jest nieważna".
Pełną listę funkcji i filtrów, odwiedź naszą Manualny filtr PHP odniesienia .
Walidacja i odkażania
Istnieją dwa rodzaje filtrów:
Members filtry:
- Służy do sprawdzania poprawności danych wprowadzanych przez użytkownika
- Ścisłe reguły formatowania (np weryfikacji URL lub adres e-mail)
- Jeśli się powiedzie, oczekiwany typ zwracany, jeśli nie zwróci FAŁSZ
Dezynfekcja filtry:
- Kiedyś, aby zezwolić lub zabronić określony ciąg znaków
- Żadnych zasad formatu danych
- Zawsze zwracają łańcuch
Opcje i flagi
Opcje i flagi są używane do dodawania dodatkowych opcji filtrowania z określonymi filtrami.
Różne filtry mają różne opcje i flagi.
W poniższym przykładzie, używamy filter_var () i "min_range" i opcję "max_range", aby sprawdzić liczbę całkowitą:
<?php $var=300; $int_options = array( "options"=>array ( "min_range"=>0, "max_range"=>256 ) ); if(!filter_var($var, FILTER_VALIDATE_INT, $int_options)) { echo("不是一个合法的整数"); } else { echo("是个合法的整数"); } ?>
Podobnie jak powyższy kod, a właściwej opcji musi być umieszczony w tablicy o nazwie "Opcje" w. Jeśli flaga nie jest wymagane w tablicy.
Ponieważ całkowita wynosi "300", to nie mieści się w podanym zakresie, wyjście kodu powyżej, będą:
不是一个合法的整数
Pełną listę funkcji i filtrów, odwiedź naszą Manualny filtr PHP odniesienia . Można zobaczyć opcje dostępne dla każdego filtra i flagi.
wejście Members
Spróbujmy Weryfikacja danych z formularza.
Musimy zrobić pierwszą rzeczą jest, aby potwierdzić, że dane wejściowe szukamy.
Następnie używamy filter_input funkcji (), aby filtrować dane wprowadzone.
W poniższym przykładzie zmienna wejściowa "e-mail" jest przekazywany do strony PHP:
<?php if(!filter_has_var(INPUT_GET, "email")) { echo("没有 email 参数"); } else { if (!filter_input(INPUT_GET, "email", FILTER_VALIDATE_EMAIL)) { echo "不是一个合法的 E-Mail"; } else { echo "是一个合法的 E-Mail"; } } ?>
Przykłady powyższych wyników były następujące:
Przykłady przedstawione
Powyższy przykład ma zmienną wprowadzone przez (email) "get" Metoda transferu:
- Wykrywanie obecności "Wyślij" zmiennej wejście typu "get"
- Jeśli istnieje zmienna wejściowa wykryć, czy jest to prawidłowy adres e-mail
wejście Oczyszczanie
Spróbujmy wyjaśnić pochodzących z formularza URL.
Przede wszystkim, musimy potwierdzić, że dane wejściowe szukamy.
Następnie zdezynfekować funkcję wejścia filter_input danych ().
W poniższym przykładzie zmienna wejściowa "URL" jest przekazywany do strony PHP:
<?php if(!filter_has_var(INPUT_GET, "url")) { echo("没有 url 参数"); } else { $url = filter_input(INPUT_GET, "url", FILTER_SANITIZE_URL); echo $url; } ?>
Przykłady przedstawione
Przykłady powyższe według jednej zmiennej wejściowej (URL) "GET" metoda wysłania:
- Wykrywanie obecności "URL" zmienne wejściowe typu "get"
- Jeśli zmienna wejściowa istnieje, jego oczyszczanie (usuwanie niedozwolonych znaków) i będzie go przechowywać w zmiennej $ url
Jeśli zmienna wejściowa jest ciągiem tak: "http://www.ruaanoob.com/", zmienna $ url po oczyszczeniu jest w następujący sposób:
Wiele filtru wejściowego
Formy często składają się z wielu pól wejściowych. Aby uniknąć filter_var lub filter_input funkcję wielokrotnie wzywał, możemy użyć filter_var_array filter_input_array lub funkcję.
W tym przypadku używamy filter_input_array () funkcji filtrowania trzy zmienne GET. Odebrane zmienne GET to nazwisko, wiek i adres e-mail:
<?php $filters = array ( "name" => array ( "filter"=>FILTER_SANITIZE_STRING ), "age" => array ( "filter"=>FILTER_VALIDATE_INT, "options"=>array ( "min_range"=>1, "max_range"=>120 ) ), "email"=> FILTER_VALIDATE_EMAIL ); $result = filter_input_array(INPUT_GET, $filters); if (!$result["age"]) { echo("年龄必须在 1 到 120 之间。<br>"); } elseif(!$result["email"]) { echo("E-Mail 不合法<br>"); } else { echo("输入正确"); } ?>
Przykłady przedstawione
Powyższy przykład ma trzy zmienne wejściowe (imię i nazwisko, wiek i e-mail) transmitowanych przez "get" metodą:
- Ustaw tablicę zawierającą nazwy zmiennych wejściowych wykorzystywanych do określenia zmiennych wejściowych i filtr
- () Funkcji, parametrów wejściowych, w tym zmiennych GET i po prostu ustawić połączenia tablicy filter_input_array
- Wykrywanie zmiennej $ result "wiek", a zmienna wejściowa "e-mail" jest nielegalne. (Jeśli nie są nielegalne wejście, po zastosowaniu w filter_input_array (), zmienna wejściowa jest FAŁSZ).
filter_input_array () Drugi argument funkcji może być tablicą lub pojedynczy identyfikator filtra.
Jeżeli parametr jest pojedynczy identyfikator filtru, a następnie określony filtr będzie filtrował wszystkie wartości tablicy wejście.
Jeśli ten parametr jest tablicą, tablica musi być zgodne z następującymi zasadami:
- Musi być tablicą asocjacyjną zawierającą zmienną wejściową jest klucz array (takich jak zmiennej wejściowej "wiek")
- Wartość tej tablicy musi mieć identyfikator filtru lub postanowienia filtr, flagi i opcje tablice
Zastosowanie filtra oddzwaniania
Stosując filtry FILTER_CALLBACK, można wywołać funkcję niestandardową, użyj go jako filtr do wykorzystania. Tak więc, mamy pełną kontrolę nad filtrowaniem danych.
Można utworzyć własną funkcję niestandardową, można też użyć istniejącej funkcji PHP.
Będziesz gotowy do korzystania z funkcji filtra, zgodnie z przepisami wyszczególnionymi opcji ustalonych wcześniej metody. W tablicy asocjacyjnej z "opcji" nazw.
W poniższym przykładzie, używamy funkcji niestandardowej wszystkich "_" przekształca się w przestrzeni:
<?php function convertSpace($string) { return str_replace("_", ".", $string); } $string = "www_w3big_com!"; echo filter_var($string, FILTER_CALLBACK, array("options"=>"convertSpace")); ?>
Wynik ten kod jest następujący:
Przykłady przedstawione
Powyższe przykłady wszystkie "_" na ".":
- Aby stworzyć "_" zastępuje się wyrazami "." Funkcja
- Funkcja połączeń filter_var (), której parametry są FILTER_CALLBACK filtr i tablicę zawierającą naszą funkcję