Also notice that filter functions are using only the original variable values passed to the script even if you change the value in super global variable ($_GET, $_POST, ...) later in the script.
<?php
echo filter_input(INPUT_GET, 'var'); // print 'something'
echo $_GET['var']; // print 'something'
$_GET['var'] = 'changed';
echo filter_input(INPUT_GET, 'var'); // print 'something'
echo $_GET['var']; // print 'changed'
?>
In fact, external data are duplicated in SAPI before the script is processed and filter functions don't use super globals anymore (as explained in Filter tutorial bellow, section 'How does it work?').
PHP.mk документација
Функции за филтрирање
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
Патека
ref.filter.php
Локална патека за оваа страница.
Извор
php.net/manual/en
Оригиналниот HTML се реупотребува и локално се стилизира.
Режим
Прокси + преведен приказ
Кодовите, табелите и белешките остануваат читливи во истиот тек.
Референца
ref.filter.php
Функции за филтрирање
Референца за `ref.filter.php` со подобрена типографија и навигација.
Функции за филтрирање
Содржина
- filter_has_var — Проверува дали постои променлива од наведениот тип
- filter_id — Враќа ID на филтерот што припаѓа на именуван филтер
- filter_input — Добива специфична надворешна променлива по име и опционално ја филтрира
- filter_input_array — Добива надворешни променливи и опционално ги филтрира
- filter_list — Враќа листа на сите поддржани филтри
- filter_var — Филтрира променлива со одреден филтер
- filter_var_array — Презема повеќе променливи и опционално ги филтрира
Белешки од корисници 2 забелешки
vojtech на x точка cz ¶
19 години пред
fumble1 на web точка de ¶
пред 18 години
I recommend you to use the FILTER_REQUIRE_SCALAR (or FILTER_REQUIRE_ARRAY) flags, since you can use array-brackets both to access string offsets and array-element -- however, not only this can lead to unexpected behaviour. Look at this example:
<?php
$image = basename(filter_input(INPUT_GET, 'src', FILTER_UNSAFE_RAW, FILTER_FLAG_STRIP_LOW));
// further checks
?>
/script.php?src[0]=foobar will cause a warning. :-(
Hence my recommendation:
<?php
$image = basename(filter_input(INPUT_GET, 'src', FILTER_UNSAFE_RAW, FILTER_REQUIRE_SCALAR | FILTER_FLAG_STRIP_LOW));
// further checks
?>