PHP -filters
Gegevens valideren = Bepaal of de gegevens in de juiste vorm zijn.
Gegevens opschonen = elk illegaal teken uit de gegevens verwijderen.
De PHP-filterextensie
PHP-filters worden gebruikt om externe invoer te valideren en op te schonen.
De PHP-filterextensie heeft veel van de functies die nodig zijn voor het controleren van gebruikersinvoer en is ontworpen om gegevensvalidatie eenvoudiger en sneller te maken.
De filter_list()
functie kan worden gebruikt om op te sommen wat de PHP-filterextensie te bieden heeft:
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 gebruiken?
Veel webapplicaties krijgen externe input. Externe invoer/gegevens kunnen zijn:
- Gebruikersinvoer van een formulier
- Koekjes
- Gegevens van webservices
- Servervariabelen
- Resultaten databasequery
U moet externe gegevens altijd valideren!
Ongeldig ingediende gegevens kunnen leiden tot beveiligingsproblemen en uw webpagina kapot maken!
Door gebruik te maken van PHP filters weet je zeker dat je applicatie de juiste input krijgt!
PHP filter_var () Functie
De filter_var()
functie valideert en zuivert gegevens.
De filter_var()
functie filtert een enkele variabele met een gespecificeerd filter. Er zijn twee gegevens nodig:
- De variabele die u wilt controleren
- Het type cheque dat moet worden gebruikt
Een string zuiveren
In het volgende voorbeeld wordt de filter_var()
functie gebruikt om alle HTML-tags uit een tekenreeks te verwijderen:
Voorbeeld
<?php
$str = "<h1>Hello World!</h1>";
$newstr = filter_var($str, FILTER_SANITIZE_STRING);
echo $newstr;
?>
Valideer een geheel getal
In het volgende voorbeeld wordt de filter_var()
functie gebruikt om te controleren of de variabele $int een geheel getal is. Als $int een geheel getal is, is de uitvoer van de onderstaande code: "Integer is valid". Als $int geen geheel getal is, is de uitvoer: "Integer is not valid":
Voorbeeld
<?php
$int = 100;
if (!filter_var($int, FILTER_VALIDATE_INT) === false) {
echo("Integer is valid");
} else {
echo("Integer is not valid");
}
?>
Tip: filter_var() en Probleem met 0
In het bovenstaande voorbeeld, als $int was ingesteld op 0, retourneert de bovenstaande functie "Integer is not valid". Gebruik de onderstaande code om dit probleem op te lossen:
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");
}
?>
Een IP-adres valideren
In het volgende voorbeeld wordt de filter_var()
functie gebruikt om te controleren of de variabele $ip een geldig 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");
}
?>
Een e-mailadres opschonen en valideren
In het volgende voorbeeld wordt de filter_var()
functie gebruikt om eerst alle ongeldige tekens uit de variabele $email te verwijderen en vervolgens te controleren of het een geldig e-mailadres 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");
}
?>
Een URL opschonen en valideren
In het volgende voorbeeld wordt de filter_var()
functie gebruikt om eerst alle ongeldige tekens van een URL te verwijderen en vervolgens te controleren of $url een 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");
}
?>
Volledige PHP-filterreferentie
Voor een volledige referentie van alle filterfuncties, ga naar onze volledige PHP Filter Reference. Controleer elk filter om te zien welke opties en vlaggen beschikbaar zijn.
De referentie bevat een korte beschrijving en gebruiksvoorbeelden voor elke functie!