PHP filters
Valideer data = Bepaal of die data in die regte vorm is.
Sanitizing data = Verwyder enige onwettige karakter uit die data.
Die PHP-filteruitbreiding
PHP-filters word gebruik om eksterne insette te valideer en te ontsmet.
Die PHP-filteruitbreiding het baie van die funksies wat nodig is om gebruikersinvoer na te gaan, en is ontwerp om datavalidering makliker en vinniger te maak.
Die filter_list()
funksie kan gebruik word om te lys wat die PHP-filteruitbreiding bied:
Voorbeeld
<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>
Waarom filters gebruik?
Baie webtoepassings ontvang eksterne insette. Eksterne invoer/data kan wees:
- Gebruikerinvoer vanaf 'n vorm
- Koekies
- Webdienstedata
- Bediener veranderlikes
- Databasisnavraagresultate
U moet altyd eksterne data bekragtig!
Ongeldige ingediende data kan lei tot sekuriteitsprobleme en kan jou webblad breek!
Deur PHP-filters te gebruik, kan jy seker wees dat jou toepassing die korrekte insette kry!
PHP filter_var () Funksie
Die filter_var()
funksie beide valideer en ontsmet data.
Die filter_var()
funksie filtreer 'n enkele veranderlike met 'n gespesifiseerde filter. Dit neem twee stukke data:
- Die veranderlike wat jy wil kontroleer
- Die tipe tjek om te gebruik
Ontsmet 'n snaar
Die volgende voorbeeld gebruik die filter_var()
funksie om alle HTML-merkers van 'n string te verwyder:
Voorbeeld
<?php
$str = "<h1>Hello World!</h1>";
$newstr = filter_var($str, FILTER_SANITIZE_STRING);
echo $newstr;
?>
Bevestig 'n heelgetal
Die volgende voorbeeld gebruik die filter_var()
funksie om te kyk of die veranderlike $int 'n heelgetal is. As $int 'n heelgetal is, sal die uitvoer van die kode hieronder wees: "Geheelgetal is geldig". As $int nie 'n heelgetal is nie, sal die uitvoer wees: "Geheelgetal is nie geldig nie":
Voorbeeld
<?php
$int = 100;
if (!filter_var($int, FILTER_VALIDATE_INT) === false) {
echo("Integer is valid");
} else {
echo("Integer is not valid");
}
?>
Wenk: filter_var() en probleem met 0
In die voorbeeld hierbo, as $int op 0 gestel is, sal die funksie hierbo "Geheelgetal is nie geldig nie" terugstuur. Om hierdie probleem op te los, gebruik die kode hieronder:
Voorbeeld
<?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");
}
?>
Bevestig 'n IP-adres
Die volgende voorbeeld gebruik die filter_var()
funksie om te kyk of die veranderlike $ip 'n geldige IP-adres is:
Voorbeeld
<?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");
}
?>
Ontsmet en bekragtig 'n e-posadres
Die volgende voorbeeld gebruik die filter_var()
funksie om eers alle onwettige karakters van die $email veranderlike te verwyder, en kyk dan of dit 'n geldige e-posadres is:
Voorbeeld
<?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");
}
?>
Sanitiseer en valideer 'n URL
Die volgende voorbeeld gebruik die filter_var()
funksie om eers alle onwettige karakters van 'n URL te verwyder, en kyk dan of $url 'n geldige URL is:
Voorbeeld
<?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");
}
?>
Voltooi PHP-filterverwysing
Vir 'n volledige verwysing van alle filterfunksies, gaan na ons volledige PHP-filterverwysing. Gaan elke filter na om te sien watter opsies en vlae beskikbaar is.
Die verwysing bevat 'n kort beskrywing, en voorbeelde van gebruik, vir elke funksie!