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


Meneruskan pembelajaran
||
<?php header("Content-type: text/html; charset=utf-8");//设置编码 $int = 123; if(!filter_var($int, FILTER_VALIDATE_INT)){ echo("不是一个合法的整数"); }else{ echo("是个合法的整数"); } ?>
  • Cadangan kursus
  • Muat turun perisian kursus