


Gunakan fungsi filter_input_array() PHP untuk menapis data yang dimasukkan oleh berbilang pengguna tunggal
Dalam pembangunan PHP, selalunya diperlukan untuk memproses data input pengguna, dan data input pengguna yang tidak boleh dipercayai dengan mudah boleh menyebabkan pelbagai isu keselamatan, seperti suntikan SQL, serangan XSS, dsb. Oleh itu, apabila menerima input pengguna, data perlu ditapis dan disahkan untuk memastikan data yang dimasukkan memenuhi keperluan untuk meningkatkan keselamatan sistem.
PHP menyediakan fungsi filter_input_array() untuk menapis data input pengguna tunggal atau berbilang. Fungsi ini boleh meningkatkan keselamatan data input dengan menggunakan penapis untuk mengesahkan dan menapis set data input.
Artikel ini akan memperkenalkan cara menggunakan fungsi filter_input_array() PHP untuk menapis data yang dimasukkan oleh berbilang pengguna tunggal dan memberikan contoh kod yang sepadan.
1. fungsi filter_input_array()
fungsi filter_input_array() digunakan untuk mengesahkan dan menapis berbilang data input. Takrifan fungsi ini adalah seperti berikut:
filter_input_array ( int $type [, mixed $definition [, bool $add_empty = true ]] ) : mixed
Fungsi ini perlu lulus dalam tiga parameter:
Parameter 1: type
, menunjukkan jenis data yang perlu ditapis, yang boleh menjadi INPUT_GET
, INPUT_POST
, INPUT_COOKIE
, INPUT_SERVER
, dsb., maksud khusus adalah seperti berikut: 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()函数过滤多个单个用户输入的数据的示例。假设我们要验证并过滤一个包含用户名、邮箱和年龄的表单数据,满足以下要求:
- 用户名只能包含字母和数字,且长度为6到12个字符
- 邮箱必须是合法的邮箱格式
- 年龄必须是数字,且在18到100之间
示例代码如下:
<?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
: Daripada $_GET; -
INPUT_POST
: Dapatkan pembolehubah daripada$_POST kod>;
INPUT_COOKIE: Dapatkan pembolehubah daripada $_COOKIE
-
INPUT_SERVER
: Dapatkan pembolehubah daripada$_SERVER
Variables; -
INPUT_ENV
: Dapatkan pembolehubah daripada$_ENV
; >INPUT_REQUEST: Daripada $_REQUEST.
rrreee
Antaranya,filter
mewakili pengesah yang ditentukan, yang boleh menjadi validator terbina dalam seperti FILTER_VALIDATE_EMAIL
, FILTER_VALIDATE_INT
, dsb., atau pengesah tersuai, flags
mewakili teg pilihan, options
mewakili pilihan pilihan dan name
mewakili nama alternatif untuk pembolehubah. Parameter 3: add_empty
, menunjukkan sama ada untuk menapis dan mengesahkan nilai kosong. 🎜🎜Nilai pulangan fungsi ini ialah data yang ditapis Jika ralat berlaku, false
dikembalikan. 🎜🎜2. Gunakan fungsi filter_input_array() untuk menapis data yang dimasukkan oleh berbilang pengguna tunggal🎜🎜 Di bawah kami memberikan contoh penggunaan fungsi filter_input_array() untuk menapis data yang dimasukkan oleh berbilang pengguna tunggal. Katakan kami ingin mengesahkan dan menapis data borang yang mengandungi nama pengguna, alamat e-mel dan umur untuk memenuhi keperluan berikut: 🎜- Nama pengguna hanya boleh mengandungi huruf dan nombor dan panjangnya 6 hingga 12 aksara
- E-mel mestilah dalam format e-mel yang sah
- Umur mestilah nombor dan antara 18 dan 100
FILTER_VALIDATE_REGEXP
, FILTER_VALIDATE_EMAIL
dan FILTER_VALIDATE_INT
, yang digunakan untuk mengesahkan sama ada data input mematuhi Ungkapan biasa, sama ada ia mematuhi format e-mel dan sama ada ia adalah integer. Selain itu, beberapa pilihan digunakan, seperti min_range
, max_range
, untuk membenarkan nilai minimum dan maksimum data input. Akhir sekali, gunakan pernyataan if untuk menentukan sama ada data input adalah sah. 🎜🎜3. Kesimpulan🎜🎜Menggunakan fungsi filter_input_array() boleh dengan mudah mengesahkan dan menapis data yang dimasukkan oleh berbilang pengguna tunggal, dan meningkatkan keselamatan data. Apabila menggunakan fungsi ini, anda perlu menentukan peraturan, pengesah, pilihan, dsb. untuk data input bagi memastikan kesahihan data input. Penggunaan fungsi ini dengan betul boleh melindungi keselamatan sistem dengan berkesan dan mengelakkan kelemahan keselamatan biasa. 🎜Atas ialah kandungan terperinci Gunakan fungsi filter_input_array() PHP untuk menapis data yang dimasukkan oleh berbilang pengguna tunggal. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



PHP 8.4 membawa beberapa ciri baharu, peningkatan keselamatan dan peningkatan prestasi dengan jumlah penamatan dan penyingkiran ciri yang sihat. Panduan ini menerangkan cara memasang PHP 8.4 atau naik taraf kepada PHP 8.4 pada Ubuntu, Debian, atau terbitan mereka

Bekerja dengan pangkalan data dalam CakePHP adalah sangat mudah. Kami akan memahami operasi CRUD (Buat, Baca, Kemas Kini, Padam) dalam bab ini.

Untuk bekerja dengan tarikh dan masa dalam cakephp4, kami akan menggunakan kelas FrozenTime yang tersedia.

Untuk mengusahakan muat naik fail, kami akan menggunakan pembantu borang. Di sini, adalah contoh untuk muat naik fail.

CakePHP ialah rangka kerja sumber terbuka untuk PHP. Ia bertujuan untuk menjadikan pembangunan, penggunaan dan penyelenggaraan aplikasi lebih mudah. CakePHP adalah berdasarkan seni bina seperti MVC yang berkuasa dan mudah difahami. Model, Pandangan dan Pengawal gu

Pengesah boleh dibuat dengan menambah dua baris berikut dalam pengawal.

Log masuk CakePHP adalah tugas yang sangat mudah. Anda hanya perlu menggunakan satu fungsi. Anda boleh log ralat, pengecualian, aktiviti pengguna, tindakan yang diambil oleh pengguna, untuk sebarang proses latar belakang seperti cronjob. Mengelog data dalam CakePHP adalah mudah. Fungsi log() disediakan

Kod Visual Studio, juga dikenali sebagai Kod VS, ialah editor kod sumber percuma — atau persekitaran pembangunan bersepadu (IDE) — tersedia untuk semua sistem pengendalian utama. Dengan koleksi sambungan yang besar untuk banyak bahasa pengaturcaraan, Kod VS boleh menjadi c
