PHP Filters
PHP Filters:
Filters is used to validate and filter data coming from insecure sources, like user input.
Runtime Configurations
The behavior of these functions is affected by settings in php.ini:
filter.default:
Filter all $_GET, $_POST, $_COOKIE, $_REQUEST and $_SERVER data by this filter. Accepts the name of the filter you like to use by default. Default is "unsafe_raw".
filter.default_flags:
Default flags to apply when the default filter is set. This is set to FILTER_FLAG_NO_ENCODE_QUOTES by default for backwards compatibility reasons. Default is "NULL".
PHP Filter Functions
filter_has_var() - Checks whether a variable of a specified input type exist
filter_id() - Returns the filter ID of a specified filter name
filter_input() - Gets an external variable (e.g. from form input) and optionally filters it
filter_input_array() - Gets external variables (e.g. from form input) and optionally filters them
filter_list() - Returns a list of all supported filter names
filter_var() - Filters a variable with a specified filter
filter_var_array() - Gets multiple variables and filter them
filter_has_var():
The filter_has_var() function checks whether a variable of a specified input type exist. This function checks the content received by the PHP page, so the variable must be sent to the page via e.g a querystring
Syntax: filter_has_var(type, variable)
Example
Check if the input variable "email" is sent to the PHP page, through the "get" method:
<?php
if (!filter_has_var(INPUT_GET, "email")) {
echo("Email not found");
} else {
echo("Email found");
}
?>
filter_id():
The filter_id() function returns filter ID of a specified filter name.
Syntax: filter_id(filter_name)
Example
Return the filter ID of the VALIDATE_EMAIL filter:
<?php
$echo(filter_id("validate_email"));
?>
filter_input():
The filter_input() function gets an external variable (e.g. from form input) and optionally filters it. This function is used to validate variables from insecure sources, such as user input.
Syntax: filter_input(type, variable, filter, options)
Example
Check if the external variable "email" is sent to the PHP page, through the "get" method, and also check if it is a valid email address:
<?php
if (!filter_input(INPUT_GET, "email", FILTER_VALIDATE_EMAIL)) {
echo("Email is not valid");
} else {
echo("Email is valid");
}
?>
filter_input_array():
The filter_input_array() function gets external variables (e.g. from form input) and optionally filters them. This function is useful for retrieving/filtering many values instead of calling filter_input() many times.
Syntax: filter_input_array(type, definition, add_empty)
Example
Use the filter_input_array() function to filter three POST variables. The received POST variables is name, age and e-mail:
<?php
$filters = array (
"name" => array ("filter"=>FILTER_CALLBACK,
"flags"=>FILTER_FORCE_ARRAY,
"options"=>"ucwords"
),
"age" => array ( "filter"=>FILTER_VALIDATE_INT,
"options"=>array("min_range"=>1,"max_range"=>120)
),
"email" => FILTER_VALIDATE_EMAIL
);
print_r(filter_input_array(INPUT_POST, $filters));
?>
The output of the code above will be:
Array
(
[name] => Peter
[age] => 41
[email] => peter@example.com
)
filter_list():
The filter_list() function returns a list of all the supported filter names.
Syntax: filter_list()
Example
List all supported filter names:
<?php
print_r(filter_list());
?>
filter_var():
The filter_var() function filters a variable with the specified filter.
Syntax: filter_var(var, filtername, options)
Example
Check if $email is a valid email address:
<?php
$email = "john.doe@example.com";
if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
echo("$email is a valid email address");
} else {
echo("$email is not a valid email address");
}
?>
filter_var_array():
The filter_var_array() function gets multiple variables and optionally filters them. This function is useful for filtering many values without calling filter_var() many times.
Syntax: filter_var_array(data_array, args, add_empty)
Example
Use the filter_var_array() function to get multiple variables:
<?php
$data = array(
'fullname' => 'Peter Griffin',
'age' => '41',
'email' => 'peter@example.com',
);
$mydata = filter_var_array($data);
var_dump($mydata);
?>
The output of the code should be:
array(3) {
["fullname"]=> string(13) "Peter Griffin"
["age"]=> string(2) "41"
["email"]=> string(17) "peter@example.com"
}
Comments
Post a Comment