Penapis untuk Pemula kepada PHP
Penapis 1.php
Penapis PHP digunakan untuk mengesahkan dan menapis data daripada sumber tidak selamat, seperti input pengguna.
2. Apakah itu penapis php
Penapis PHP digunakan untuk mengesahkan dan menapis data daripada sumber yang tidak selamat.
Menguji, mengesahkan dan menapis input pengguna atau data tersuai ialah bahagian penting dalam mana-mana aplikasi web. Sambungan penapis PHP direka untuk menjadikan penapisan data lebih mudah dan pantas
3 Mengapa menggunakan penapis
Hampir semua aplikasi web bergantung pada input luaran. Data ini biasanya datang daripada pengguna atau aplikasi lain (seperti perkhidmatan web). Dengan menggunakan penapis, anda boleh memastikan bahawa aplikasi anda mendapat jenis input yang betul
Menapis data luaran akan meningkatkan keselamatan, jadi apakah data luaran yang ada?
(1).Input data daripada borang
(2).Kuki
(3).Data perkhidmatan web
(4).Pembolehubah Pelayan
(5). Hasil pertanyaan pangkalan data
Fungsi dan penapis
Untuk menapis pembolehubah, sila gunakan salah satu daripada berikut fungsi penapis:
filter_var() - Menapis pembolehubah tunggal dengan penapis tertentu
filter_var_array() - Menapis berbilang pembolehubah mengikut penapis yang sama atau berbeza Pembolehubah
input_filter - Mendapat pembolehubah input dan menapisnya
filter_input_array - Mendapatkan berbilang pembolehubah input, dan menapisnya dengan penapis yang sama atau berbeza
<?php header("Content-type: text/html; charset=utf-8");//设置编码 $int = 123; if(!filter_var($int, FILTER_VALIDATE_INT)){ echo("不是一个合法的整数"); }else{ echo("是个合法的整数"); } ?>
Nota: Apabila kita menulis integer sah, output akan integer sah. Jika tidak, output tidak akan menjadi integer sah
Mengesahkan dan Membersihkan Ini ialah dua jenis penapisan
Mengesahkan penapis:
Digunakan untuk mengesahkan input pengguna
Peraturan format yang ketat (seperti URL atau pengesahan E-Mel)
Jika berjaya Mengembalikan jenis yang dijangkakan, atau FALSE apabila gagal
Penapis sanitasi :
Digunakan untuk membenarkan atau tidak membenarkan aksara tertentu dalam rentetan
Tiada peraturan format data
Sentiasa mengembalikan rentetan
Pilihan dan bendera
Pilihan dan bendera digunakan untuk menambah pilihan penapisan tambahan pada penapis yang ditentukan.
Penapis berbeza mempunyai pilihan dan bendera yang berbeza
<?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("是个合法的整数"); } ?>
Nota: Sama seperti kod di atas, pilihan mesti dimasukkan ke dalam tatasusunan berkaitan yang dipanggil "pilihan". Jika menggunakan bendera, mereka tidak perlu berada dalam tatasusunan. Memandangkan integer ialah "300", ia tidak berada dalam julat yang ditentukan
Sahkan input
Mari cuba sahkan input dari borang masuk.
Perkara pertama yang perlu kami lakukan ialah mengesahkan bahawa data input yang kami cari wujud.
Kemudian kami menggunakan fungsi filter_input() untuk menapis data input.
Dalam contoh berikut, pembolehubah input "e-mel" dihantar ke halaman PHP
<?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"; } } ?>
Nota: Apabila borang menghantar data, semak dahulu sama ada terdapat data yang dihantar oleh get
Kemudian jika terdapat data yang dihantar, ia akan dinilai sama ada ia adalah e-mel yang sah
Sanitize input
Mari cuba bersihkan URL yang dihantar daripada borang.
Pertama, kami ingin mengesahkan bahawa data input yang kami cari wujud.
Kemudian, kami menggunakan fungsi filter_input() untuk membersihkan data input.
Dalam contoh berikut, pembolehubah input "url" dihantar ke halaman 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; } ?>
Nota: Semak sama ada terdapat pembolehubah input "url" jenis "GET".
Jika pembolehubah input ini wujud, bersihkan pembolehubah tersebut (alih keluar aksara haram) dan simpannya dalam pembolehubah $url