Filtry PHP
Walidacja danych = Określ, czy dane są we właściwej formie.
Sanitizing data = Usuń wszelkie niedozwolone znaki z danych.
Rozszerzenie filtra PHP
Filtry PHP są używane do walidacji i oczyszczania danych wejściowych.
Rozszerzenie filtra PHP ma wiele funkcji potrzebnych do sprawdzania danych wprowadzanych przez użytkownika i jest zaprojektowane tak, aby walidacja danych była łatwiejsza i szybsza.
filter_list()
Funkcji można użyć do wylistowania tego, co oferuje rozszerzenie filtra PHP :
Przykład
<table>
<tr>
<td>Filter Name</td>
<td>Filter ID</td>
</tr>
<?php
foreach (filter_list() as $id =>$filter) {
echo '<tr><td>' . $filter . '</td><td>' . filter_id($filter) . '</td></tr>';
}
?>
</table>
Dlaczego warto korzystać z filtrów?
Wiele aplikacji internetowych otrzymuje dane wejściowe z zewnątrz. Zewnętrzne dane wejściowe/dane mogą być:
- Dane wprowadzone przez użytkownika z formularza
- Ciasteczka
- Dane usług internetowych
- Zmienne serwera
- Wyniki zapytań do bazy danych
Zawsze powinieneś weryfikować dane zewnętrzne!
Nieprawidłowe przesłane dane mogą prowadzić do problemów z bezpieczeństwem i zepsuć stronę!
Używając filtrów PHP, możesz mieć pewność, że Twoja aplikacja otrzyma prawidłowe dane wejściowe!
PHP filter_var() Funkcja
Funkcja filter_var()
zarówno weryfikuje, jak i oczyszcza dane.
Funkcja filter_var()
filtruje pojedynczą zmienną z określonym filtrem. Zajmuje dwie części danych:
- Zmienna, którą chcesz sprawdzić
- Rodzaj czeku do użycia
Zdezynfekuj sznurek
Poniższy przykład używa filter_var()
funkcji do usunięcia wszystkich znaczników HTML z ciągu:
Przykład
<?php
$str = "<h1>Hello World!</h1>";
$newstr = filter_var($str, FILTER_SANITIZE_STRING);
echo $newstr;
?>
Sprawdź poprawność liczby całkowitej
Poniższy przykład używa filter_var()
funkcji do sprawdzenia, czy zmienna $int jest liczbą całkowitą. Jeśli $int jest liczbą całkowitą, wynikiem poniższego kodu będzie: „Liczba całkowita jest poprawna”. Jeśli $int nie jest liczbą całkowitą, wynik będzie następujący: „Liczba całkowita jest nieprawidłowa”:
Przykład
<?php
$int = 100;
if (!filter_var($int, FILTER_VALIDATE_INT) === false) {
echo("Integer is valid");
} else {
echo("Integer is not valid");
}
?>
Wskazówka: filter_var() i problem z 0
W powyższym przykładzie, jeśli $int był ustawiony na 0, powyższa funkcja zwróci "Liczba całkowita nie jest poprawna". Aby rozwiązać ten problem, użyj poniższego kodu:
Przykład
<?php
$int = 0;
if (filter_var($int, FILTER_VALIDATE_INT) === 0 || !filter_var($int, FILTER_VALIDATE_INT) === false) {
echo("Integer is valid");
} else {
echo("Integer is not valid");
}
?>
Sprawdź poprawność adresu IP
Poniższy przykład wykorzystuje filter_var()
funkcję do sprawdzenia, czy zmienna $ip jest poprawnym adresem IP:
Przykład
<?php
$ip = "127.0.0.1";
if (!filter_var($ip, FILTER_VALIDATE_IP) === false) {
echo("$ip is a valid IP address");
} else {
echo("$ip is not a valid IP address");
}
?>
Oczyść i zweryfikuj adres e-mail
Poniższy przykład używa filter_var()
funkcji, aby najpierw usunąć wszystkie niedozwolone znaki ze zmiennej $email, a następnie sprawdzić, czy jest to poprawny adres e-mail:
Przykład
<?php
$email = "[email protected]";
// Remove all illegal characters from email
$email = filter_var($email, FILTER_SANITIZE_EMAIL);
// Validate e-mail
if (!filter_var($email, FILTER_VALIDATE_EMAIL) === false) {
echo("$email is a valid email address");
} else {
echo("$email is not a valid email address");
}
?>
Oczyść i zweryfikuj adres URL
Poniższy przykład używa filter_var()
funkcji, aby najpierw usunąć wszystkie niedozwolone znaki z adresu URL, a następnie sprawdzić, czy $url jest poprawnym adresem URL:
Przykład
<?php
$url = "https://www.w3schools.com";
// Remove all illegal characters from a url
$url = filter_var($url, FILTER_SANITIZE_URL);
// Validate url
if (!filter_var($url, FILTER_VALIDATE_URL) === false) {
echo("$url is a valid URL");
} else {
echo("$url is not a valid URL");
}
?>
Pełne odniesienie do filtrów PHP
Aby uzyskać pełne informacje o wszystkich funkcjach filtrów, przejdź do naszej pełnej dokumentacji filtrów PHP. Sprawdź każdy filtr, aby zobaczyć, jakie opcje i flagi są dostępne.
Odniesienie zawiera krótki opis i przykłady użycia dla każdej funkcji!