Input validation with filter functions

Introduction
Although PHP has a lot of filter functions available, I found that still to many people are using (often incorrect) regular expressions to validate user input. The filter extension is simple, standard available and will fulfill the common validations. Below some pratical examples and things to consider when working with PHP filter functions.

Which are available?
Below a shameless copy paste of the PHP documentation.

  • filter_has_var — Checks if variable of specified type exists
  • filter_id — Returns the filter ID belonging to a named filter
  • filter_input_array — Gets external variables and optionally filters them
  • filter_input — Gets a specific external variable by name and optionally filters it
  • filter_list — Returns a list of all supported filters
  • filter_var_array — Gets multiple variables and optionally filters them
  • filter_var — Filters a variable with a specified filter

Pratical use

Sanitizing
“Filter input escape output” every developer knows this but it is a repetitive job but with the filter extension filterering input became a lot easier. When you correctly filter input you drastically lower the change of application vulnerabilities.

Sanitizing a single variable

$sText = ' ';
$sText = filter_var($sText, FILTER_SANITIZE_STRING);
echo $sText; // This is a comment from a alert("scriptkiddie");

Sanitizing multiple variables, same principle as above but with an array, the filter will sanitize all values inside the array

filter_var_array($_POST, FILTER_SANITIZE_STRING);

Validating an email address

if(filter_var($sEmail, FILTER_VALIDATE_EMAIL) === false) {
     $this->addError('Invalid email address', $sEmail);
}

Validation a complete array
Validating all your data at once with a single filter will make your code clear, all in one place and is more easy to maintain an example below.

$aData = array(
	'student'	=> 'Sjoerd Maessen',
	'class'		=> '21',
	'grades' => array(
			'math' => 9,
			'geography' => 66,
			'gymnastics' => 7.5
	)
);

$aValidation = array(
	'student'	=> FILTER_SANITIZE_STRING,
	'class'		=> FILTER_VALIDATE_INT,
	'grades'	=> array(
				'filter' => FILTER_VALIDATE_INT,
				'flags'	 => FILTER_FORCE_ARRAY,
				'options'=> array('min_range'=>0, 'max_range'=>10))
);

echo '
';
var_dump(filter_var_array($aData, $aValidation));

/*array(3) {
  ["student"]=>
  string(14) "Sjoerd Maessen"
  ["class"]=>
  int(21) // Thats strange, my string is converted
  ["grades"]=>
  array(3) {
    ["math"]=>
    int(9)
    ["geography"]=>
    bool(false) // 66 is > 10
    ["gymnastics"]=>
    bool(false) // 7.5 is not an int
  }
}*/

Note: okay I did not expect that the string '21' would validate true against FILTER_VALIDATE_INT, after some more testing I also noticed that min_range and max_range only work with FILTER_VALIDATE_INT, when using floats or scalars the options are just ignored, so be aware!

The sanitizing examples above can be made easily more restrictive by adding flags like FILTER_FLAG_STRIP_LOW to the sanitize filter, FILTER_FLAG_STRIP_LOW will for example strip all characters that have a numerical value below 32.

Things to consider
Although the filter functions are some time available some of them aren't flawless, at some points the documentation is missing or very unclear. Another example is the filter_var validation for IPv6 addresses. (see bug report #50117). So it is always a good thing to check if the filter is really doing what you expect it does. Write testcases before using. If you use it correctly you can write your validations in the blink of an eye, and this extension will be your new best friend.

Links
Filter functions
Filter flags

Comments

4,099 responses to “Input validation with filter functions”

  1. StevenMor Avatar
    StevenMor

    https://iver.us.com/# ivermectin buy online

  2. MarcusenUrb Avatar
    MarcusenUrb

    cheap propecia without a prescription: cost of cheap propecia – cost generic propecia without dr prescription

  3. StevenMor Avatar
    StevenMor

    https://fertilitypctguide.us.com/# cheap clomid without a prescription

  4. Michaelles Avatar
    Michaelles

    buying generic propecia without prescription: order cheap propecia tablets – Follicle Insight

  5. MarcusenUrb Avatar
    MarcusenUrb

    buy Elavil: Generic Elavil – buy Elavil

  6. Michaelles Avatar
    Michaelles

    Follicle Insight: cost of cheap propecia without a prescription – Follicle Insight

  7. fdertol mrtokev Avatar

    Hi there, You have done a fantastic job. I’ll definitely digg it and personally suggest to my friends. I’m sure they will be benefited from this website.

  8. ThomasgUh Avatar

    промокод 1xBet при регистрации Активируйте бонусом при регистрации на https://fiesta-new.ru/wp-content/pgs/promokod_754.html и заберите 32 500 рублей + бонус 100%, чтобы получить дополнительное преимущество.

  9. StevenMor Avatar
    StevenMor

    https://follicle.us.com/# get cheap propecia pill

  10. MarcusenUrb Avatar
    MarcusenUrb

    AmiTrip Relief Store: buy Elavil – Elavil

  11. StevenMor Avatar
    StevenMor

    https://follicle.us.com/# cost of generic propecia for sale

  12. WalterLeaws Avatar
    WalterLeaws

    https://follicle.us.com/# Follicle Insight

  13. Michaelles Avatar
    Michaelles

    cost propecia: buy cheap propecia for sale – Follicle Insight

  14. MarcusenUrb Avatar
    MarcusenUrb

    order clomid prices: fertility pct guide – cost cheap clomid price

  15. Michaelles Avatar
    Michaelles

    Iver Protocols Guide: ivermectin eye drops – ivermectin 3mg

  16. WalterLeaws Avatar
    WalterLeaws

    https://follicle.us.com/# Follicle Insight

  17. LeonardFum Avatar

    духи оптом Духи дешево: Большой выбор бюджетных вариантов парфюмерии для каждого. Найдите свой идеальный аромат без переплат!

  18. Michaelkacew Avatar
    Michaelkacew

    https://writeablog.net/larrybrown190/transform-your-living-space-with-a-modern-gas-fireplace Gas fireplaces have improved a lot in terms of energy efficiency and safety features compared to older systems. During my research into different brands is that even within the same fuel type, heat distribution and control precision can differ significantly. Certain manufacturers focus on advanced controls and customizable flame settings, while others are built around long-term reliability and simpler engineering. Understanding these differences really helps when choosing a fireplace that fits both the house layout and how often it will be used during the heating season.

  19. EdwardLaush Avatar
    EdwardLaush

    Iver Protocols Guide Iver Protocols Guide Iver Protocols Guide

  20. Lloydlepay Avatar

    Looking to betwinner create account fast? Go to https://bet-promo-codes.com/sportsbook-reviews/betwinner-registration/ and complete the simple sign-up form in just a few clicks.

  21. Josephbor Avatar

    Перейди на сайт компании — https://keynod.ru/wp-content/pgs/promokod_748.html

  22. EdwardLaush Avatar
    EdwardLaush

    Follicle Insight propecia buying generic propecia without rx

  23. MarcusenUrb Avatar
    MarcusenUrb

    can you buy cheap clomid without insurance: fertility pct guide – fertility pct guide

  24. StevenMor Avatar
    StevenMor

    https://iver.us.com/# ivermectin over the counter

  25. Jeffreypraph Avatar

    погода в ко ланте ко ланта стоит ли ехать

  26. Shaunsuirm Avatar

    Le bonus du code promo 1xBet est disponible jusqu’a 130 $ sur le compte de jeu des nouveaux utilisateurs. Pour obtenir le bonus, il faut effectuer un depot minimum et suivre la procedure correcte. Si le code est incorrect, le bonus ne sera pas credite. Toutes les informations sur le meilleur code promo 1xBet sont disponibles ici : http://www.hunyadi-zuglo.hu/files/pages/?code_promo_1xbet_bonus.html

  27. KeithVob Avatar

    Visit the brand-new official page : https://jerezlecam.com/

  28. MarcusenUrb Avatar
    MarcusenUrb

    propecia online: Follicle Insight – Follicle Insight

  29. Michaelles Avatar
    Michaelles

    AmiTrip Relief Store: AmiTrip Relief Store – Elavil

  30. WalterLeaws Avatar
    WalterLeaws

    https://iver.us.com/# Iver Protocols Guide

  31. Michaelles Avatar
    Michaelles

    Iver Protocols Guide: Iver Protocols Guide – Iver Protocols Guide

  32. Fobertsax Avatar
    Fobertsax

    Durante su recorrido, te hallarГЎs multiplicadores que incrementan significativamente tus ganancias potenciales, pero tambiГ©n cohetes amenazantes que pueden cortar tu balance en un 50%.

    https://aviamasters.nom.es/

  33. WalterLeaws Avatar
    WalterLeaws

    https://fertilitypctguide.us.com/# get generic clomid no prescription

  34. StevenMor Avatar
    StevenMor

    https://iver.us.com/# Iver Protocols Guide

  35. MarcusenUrb Avatar
    MarcusenUrb

    ivermectin cost uk: ivermectin 1 topical cream – Iver Protocols Guide

  36. DonaldLah Avatar
    DonaldLah

    https://sites.google.com/view/comfortglow/home
    When researching space heaters, I noticed that Comfort Glow heaters are often mentioned in discussions about basic efficiency and safety features. For smaller rooms or supplemental heating, those factors tend to be more important than raw power.

    Comparing different heater brands helped me understand how air circulation, temperature control, and safety mechanisms affect everyday comfort. It’s not always about maximum heat output, but about steady performance and safe operation over time.

  37. MarcusenUrb Avatar
    MarcusenUrb

    fertility pct guide: fertility pct guide – generic clomid prices

  38. Michaelles Avatar
    Michaelles

    how can i get cheap clomid: fertility pct guide – fertility pct guide

  39. DonaldLah Avatar
    DonaldLah

    https://writeablog.net/larrybrown190/create-the-perfect-ambiance-in-your-outdoor-space
    Choosing a heater can be surprisingly detailed once you start comparing brands like Comfort Glow with other home heating options. Differences in construction quality, heating technology, and usability become more noticeable after reviewing real-world experiences.

    I found that looking beyond spec sheets and focusing on how heaters perform in everyday home conditions makes the decision easier. Reliability, safety features, and consistent warmth tend to matter more than extra features in the long run.

  40. Michaelles Avatar
    Michaelles

    buy stromectol uk: Iver Protocols Guide – ivermectin usa

Leave a Reply

Your email address will not be published. Required fields are marked *