Bei der PHP-Entwicklung ist es oft notwendig, Benutzereingabedaten zu verarbeiten, und nicht vertrauenswürdige Benutzereingabedaten können leicht verschiedene Sicherheitsprobleme verursachen, wie z. B. SQL-Injection, XSS-Angriffe usw. Daher müssen die Daten beim Empfang von Benutzereingaben gefiltert und überprüft werden, um sicherzustellen, dass die eingegebenen Daten den Anforderungen zur Verbesserung der Sicherheit des Systems entsprechen.
PHP bietet die Funktion filter_input_array() zum Filtern einzelner oder mehrerer Benutzereingabedaten. Diese Funktion kann die Sicherheit von Eingabedaten verbessern, indem sie Filter zum Validieren und Filtern eines Satzes von Eingabedaten verwendet.
In diesem Artikel wird erläutert, wie Sie mit der PHP-Funktion filter_input_array() Daten filtern, die von mehreren einzelnen Benutzern eingegeben wurden, und entsprechende Codebeispiele bereitstellen.
1. Funktion filter_input_array()
Funktion filter_input_array() wird zum Überprüfen und Filtern mehrerer Eingabedaten verwendet. Die Definition dieser Funktion lautet wie folgt:
filter_input_array ( int $type [, mixed $definition [, bool $add_empty = true ]] ) : mixed
Diese Funktion muss drei Parameter übergeben:
Parameter 1: type
, der den Datentyp angibt, der gefiltert werden muss. Dies kann INPUT_GET
, INPUT_POST
, INPUT_COOKIE
, INPUT_SERVER
usw., die spezifischen Bedeutungen sind wie folgt: type
,表示需要过滤的数据类型,可以是INPUT_GET
、INPUT_POST
、INPUT_COOKIE
、INPUT_SERVER
等,具体含义如下:
INPUT_GET
:从$_GET
中取得变量;INPUT_POST
:从$_POST
中取得变量;INPUT_COOKIE
:从$_COOKIE
中取得变量;INPUT_SERVER
:从$_SERVER
中取得变量;INPUT_ENV
:从$_ENV
中取得变量;INPUT_REQUEST
:从$_REQUEST
中取得变量。参数2:definition
,表示输入数据的定义规则,可以使用一组规则数组来定义,具体格式如下:
array( '变量名' => array( 'filter' => 指定的验证器, 'flags' => 可选的标记, 'options' => 可选的选项, 'name' => 为变量指定一个替代名称, ), '变量名2' => array( 'filter' => 指定的验证器2, 'flags' => 可选的标记, 'options' => 可选的选项, 'name' => 为变量指定一个替代名称2, ), //... );
其中,filter
表示指定的验证器,可以是内置的验证器如FILTER_VALIDATE_EMAIL
、FILTER_VALIDATE_INT
等,也可以是自定义的验证器,flags
表示可选的标记,options
表示可选的选项,name
表示为变量指定一个替代名称。
参数3:add_empty
,表示是否对空值进行过滤和验证。
该函数的返回值是过滤后的数据,如果发生错误则返回false
。
二、使用filter_input_array()函数过滤多个单个用户输入的数据
下面我们给出一个使用filter_input_array()函数过滤多个单个用户输入的数据的示例。假设我们要验证并过滤一个包含用户名、邮箱和年龄的表单数据,满足以下要求:
示例代码如下:
<?php $definitions = array( 'username' => array( 'filter' => FILTER_VALIDATE_REGEXP, 'options' => array('regexp' => '/^[a-z0-9_-]{6,12}$/i'), 'name' => '用户名', ), 'email' => array( 'filter' => FILTER_VALIDATE_EMAIL, 'name' => '邮箱', ), 'age' => array( 'filter' => FILTER_VALIDATE_INT, 'options' => array('min_range' => 18, 'max_range' => 100), 'name' => '年龄', ), ); $input_data = filter_input_array(INPUT_POST, $definitions); if (!$input_data) { echo '发生了一个错误。'; } else { if (in_array(null, $input_data, true) || in_array(false, $input_data, true)) { echo '输入数据不正确。'; } else { echo '输入数据正确。'; } } ?>
其中,我们定义了一个包含3个输入数据的数组,然后通过filter_input_array()函数对这些输入数据进行验证和过滤。在上面的示例中,我们使用了一些内置的验证器FILTER_VALIDATE_REGEXP
、FILTER_VALIDATE_EMAIL
和FILTER_VALIDATE_INT
,它们分别用来验证输入数据是否符合正则表达式、是否符合邮箱格式、是否为整数。此外,使用了一些选项,如min_range
、max_range
INPUT_GET
: Von $_GET;INPUT_POST
: Variablen aus $_POST beziehen code>;
$_COOKIE
; INPUT_SERVER
: Holen Sie sich it from $_SERVER
Variables; INPUT_ENV
: Holen Sie sich Variablen von $_ENV
; code>INPUT_REQUEST: Von $_REQUEST abrufen. definition
, der die Definitionsregel der Eingabedaten darstellt. Er kann mithilfe eines Satzes von Regelarrays definiert werden. Das spezifische Format ist wie folgt: rrreee
Unter diesen stelltfilter
den angegebenen Validator dar, der ein integrierter Validator wie FILTER_VALIDATE_EMAIL
, FILTER_VALIDATE_INT
usw. sein kann ein benutzerdefinierter Validator, flags
stellt ein optionales Tag dar, options
stellt optionale Optionen dar und name
stellt einen alternativen Namen für die Variable dar. Parameter 3: add_empty
, der angibt, ob leere Werte gefiltert und überprüft werden sollen. 🎜🎜Der Rückgabewert dieser Funktion sind die gefilterten Daten. Wenn ein Fehler auftritt, wird false
zurückgegeben. 🎜🎜2. Verwenden Sie die Funktion filter_input_array(), um von mehreren einzelnen Benutzern eingegebene Daten zu filtern. 🎜🎜 Nachfolgend geben wir ein Beispiel für die Verwendung der Funktion filter_input_array(), um von mehreren einzelnen Benutzern eingegebene Daten zu filtern. Angenommen, wir möchten Formulardaten mit Benutzername, E-Mail-Adresse und Alter validieren und filtern, um die folgenden Anforderungen zu erfüllen: 🎜FILTER_VALIDATE_REGEXP
, FILTER_VALIDATE_EMAIL
und FILTER_VALIDATE_INT
, die verwendet werden, um zu überprüfen, ob die Eingabedaten konform sind Regulärer Ausdruck, ob er dem E-Mail-Format entspricht und ob es sich um eine Ganzzahl handelt. Darüber hinaus werden einige Optionen verwendet, wie z. B. min_range
, max_range
, um die minimalen und maximalen Werte der Eingabedaten zu ermöglichen. Verwenden Sie abschließend die if-Anweisung, um festzustellen, ob die Eingabedaten zulässig sind. 🎜🎜3. Fazit🎜🎜Mit der Funktion filter_input_array() können von mehreren einzelnen Benutzern eingegebene Daten einfach überprüft und gefiltert und die Datensicherheit verbessert werden. Wenn Sie diese Funktion verwenden, müssen Sie Regeln, Validatoren, Optionen usw. für Eingabedaten definieren, um die Gültigkeit der Eingabedaten sicherzustellen. Die ordnungsgemäße Verwendung dieser Funktion kann die Sicherheit des Systems wirksam schützen und häufige Sicherheitslücken vermeiden. 🎜Das obige ist der detaillierte Inhalt vonVerwenden Sie die Funktion filter_input_array() von PHP, um von mehreren einzelnen Benutzern eingegebene Daten zu filtern. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!