Dalam artikel sebelumnya, saya membawakan anda "Penggunaan dan perbezaan antara pembolehubah $_GET dan $_POST dalam pembelajaran bentuk PHP", yang memperincikan perbezaan antara pembolehubah $_GET dan pembolehubah $_POST dalam PHP. Mengenai pengetahuan tentang pembolehubah $_POST, dalam artikel ini kita akan melihat pengetahuan tentang penapis dalam PHP, saya harap ia dapat membantu anda!
Dalam artikel sebelumnya, kami mempelajari tentang pengetahuan berkaitan $_GET
pembolehubah dan $_POST
pembolehubah, yang menyebut isu keselamatan Dalam artikel ini Penapis PHP kami bercakap tentang digunakan untuk mengesahkan dan menapis data daripada sumber tidak selamat, seperti input pengguna. Kemudian mari kita lihat pengetahuan berkaitan penapis dalam PHP, mari kita lihat.
Penapis PHP
Apakah itu penapis Anda boleh memahami penapis itu terlebih dahulu sebagai Penapis data yang tidak selamat. Jadi mengapa kita menggunakan Weiwei? Dalam pembangunan harian kami, hampir semua aplikasi web bergantung pada input luaran Data ini biasanya datang daripada aplikasi lain seperti perkhidmatan web atau daripada pengguna. Melalui penggunaan penapis kita dapat memastikan bahawa aplikasi mendapat jenis input yang betul.
Kita harus menapis data luaran seperti data input daripada borang, kuki, pembolehubah pelayan, hasil pertanyaan pangkalan data, dll. Adalah penting untuk menapis input, jadi kita perlu menggunakan penapis .
Penapis PHP digunakan untuk mengesahkan dan menapis data daripada sumber yang tidak selamat Ia merupakan bahagian penting dalam mana-mana aplikasi web semasa menguji, mengesahkan dan menapis input pengguna atau data tersuai lebih mudah dan cepat.
Fungsi dan penapis
Apabila kita perlu menapis pembolehubah, kita boleh menggunakan banyak fungsi penapis: filter_var()
Pass a Specify penapis untuk menapis pembolehubah tunggal filter_var_array()
menapis berbilang pembolehubah melalui penapis yang sama atau berbeza; filter_input
filter_input_array
Seterusnya, mari kita ambil contoh untuk mengesahkan integer melalui fungsi
filter_var()
<?php header("Content-type:text/html;charset=utf-8"); $int = 123; if(!filter_var($int, FILTER_VALIDATE_INT)) { echo("不是一个合法的整数"); } else { echo("是个合法的整数"); } ?>
.
Contoh di atas mengesahkan integer melalui fungsi penapis filter_var() Seterusnya, mari kita lihat dua penapis yang biasa digunakan.
<strong>Validating</strong>
Penapis : Digunakan untuk mengesahkan input pengguna, dengan peraturan format yang ketat (seperti URL atau E -Pengesahan mel), mengembalikan jenis yang dijangkakan jika berjaya, atau SALAH jika gagal.
Membersihkan<strong>Sanitizing</strong>
Pilihan dan bendera
Pilihan dan bendera digunakan untuk menambah penapisan tambahan pada pilihan penapis yang ditentukan . Penapis yang berbeza mempunyai pilihan dan bendera yang berbeza.
Seterusnya, mari kita ambil contoh untuk mengesahkan integer menggunakan filter_var()
dan "min_range"
dan pilihan "max_range"
adalah seperti berikut:
<?php header("Content-type:text/html;charset=utf-8"); $var=300; $int_options = array( "options"=>array ( "min_range"=>0, //最小值 "max_range"=>256 //最大值 ) ); if(!filter_var($var, FILTER_VALIDATE_INT, $int_options)) { echo("不是一个合法的整数"); } else { echo("是个合法的整数"); } ?>
Hasil keluaran:
Dalam contoh di atas, adalah penting untuk ambil perhatian bahawa sama seperti kod di atas, pilihan mesti dimasukkan ke dalam tatasusunan berkaitan yang dipanggil "pilihan". Jika menggunakan bendera, mereka tidak perlu berada dalam tatasusunan. Oleh kerana integer ialah "300", ia tidak berada dalam julat yang ditentukan, jadi output adalah seperti di atas.
Mengesahkan input
Seterusnya mari cuba sahkan input daripada borang. Perkara pertama yang perlu kita lakukan ialah mengesahkan bahawa data input yang kita cari wujud. Kemudian kami menggunakan fungsi filter_input()
untuk menapis data input.
Seterusnya, mari kita ambil contoh untuk melihat bagaimana pembolehubah input "e-mel" dihantar ke halaman PHP menggunakan GET Contohnya adalah seperti berikut:
<?php header("Content-type:text/html;charset=utf-8"); if(!filter_has_var(INPUT_GET, "email")) { echo("没有 email 参数"); } else { if (!filter_input(INPUT_GET, "email", FILTER_VALIDATE_EMAIL)) { echo "不是一个合法的 E-Mail"; } else { echo "是一个合法的 E-Mail"; } } ?>
Hasil keluaran: <🎜. >
Apa yang perlu kita perhatikan ialah: contoh di atas mempunyai pembolehubah input (e-mel) yang dihantar melalui kaedah "GET" Semak sama ada terdapat pembolehubah input "e-mel". daripada jenis "GET". Jika ia wujud Masukkan pembolehubah dan semak sama ada ia adalah alamat e-mel yang sah.净化输入
让我们试着清理一下从表单传来的 URL。首先,我们要确认是否存在我们正在查找的输入数据。然后,我们用 filter_input()
函数来净化输入数据。
下面我们通过示例来看一下输入变量 "url" 被传到 PHP 页面,示例如下:
<?php header("Content-type:text/html;charset=utf-8"); if(!filter_has_var(INPUT_GET, "url")) { echo("没有 url 参数"); } else { $url = filter_input(INPUT_GET, "url", FILTER_SANITIZE_URL); echo $url; } ?>
输出结果:
其中我们需要注意的是:
FILTER_SANITIZE_URL 过滤器删除字符串中所有非法的 URL 字符。上面的实例有一个通过 "GET" 方法传送的输入变量 (url):检测是否存在 "GET" 类型的 "url" 输入变量,如果存在此输入变量,对其进行净化(删除非法字符),并将其存储在 $url 变量中。
大家如果感兴趣的话,可以点击《PHP视频教程》进行更多关于PHP知识的学习。
Atas ialah kandungan terperinci Membawa anda melalui penapis PHP dalam masa tiga minit (contoh terperinci). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!