Ze względów bezpieczeństwa wszelkie przekazywane / otrzymywane dane przed ich dalszą obróbką (np. przed zapisaniem wartości pól formularzy do bazy danych), powinny być bezwzględnie filtrowane pod kątem ich zawartości. Poniżej wybrane przykłady filtrowania za pomocą funkcji wbudowanej filter_var (dostępnej od wersji 5.2.0). Zastosowanie tej funkcji pomoże nam również w sprawdzeniu poprawności danych np. adresów e-mail (czy mają odpowiedni format itd.).
1) Usuwanie z ciągu znaków tagów html.
filter_var($string,FILTER_SANITIZE_STRING);
2) Usuwanie niedozwolonych znaków z adresu e-mail (np. spacji lub znaku "<" itp).
filter_var($string,FILTER_SANITIZE_MAIL);
3) Weryfikacja poprawności formatu wprowadzonego adresu e-mail (maska coś@coś.coś):
filter_var($string, FILTER_VALIDATE_EMAIL);
Przykład użycia:
"
if(isset($_POST['testuj']) && !empty($_POST['ciag'])){
$string = $_POST['ciag'];
$napis = "Wprowadzona wartość: <strong>$string</strong> ";
if(filter_var($string, FILTER_VALIDATE_EMAIL) !== false){
$napis .= 'ma poprawny format adresu e-mail';
}else{
$napis .= 'nie ma poprawnego formatu adresu e-mail';
}
echo $napis.'<br /><br />';
}
"
examples/php_validate_int.php
4) Czy przekazywana wartość jest liczbą całkowitą.
filter_var($string,FILTER_VALIDATE_INT);
Przykład sprawdzania czy wartość zmiennej jest liczbą całkowitą:
"
$VarTest='100';
echo "Testowana wartość: $VarTest ";
$test=filter_var($VarTest,FILTER_VALIDATE_INT);
if($test){
echo 'jest liczbą całkowitą';
}else{
echo 'nie jest liczbą całkowitą';
}
"
Dokumentację wszystkich typów filtrów znajdziesz na tej stronie: http://php.net/manual/en/filter.filters.php