Fungsi PHP filter_var(): menapis dan mengesahkan input pengguna

PHPz
Lepaskan: 2023-06-27 09:24:02
asal
947 orang telah melayarinya

Apabila membangunkan aplikasi web, data yang dimasukkan pengguna sering digunakan dalam operasi seperti pertanyaan pangkalan data, fail I/O dan menghantar e-mel. Walau bagaimanapun, data yang dimasukkan oleh pengguna tidak boleh dipercayai kerana pengguna boleh memasukkan sebarang data yang menyalahi undang-undang, seperti suntikan SQL, serangan skrip merentas tapak, pelaksanaan arahan jauh, dsb. Masalah ini mungkin membawa kepada kelemahan keselamatan dalam aplikasi. Oleh itu, data yang dimasukkan pengguna mesti ditapis dan disahkan sebelum ia boleh digunakan untuk operasi yang diperlukan. PHP menyediakan fungsi filter_var() yang boleh menapis dan mengesahkan data input pengguna dengan berkesan.

Fungsi filter_var() menyediakan satu set penapis yang boleh digunakan untuk mengesahkan, menapis dan mengubah pelbagai jenis data. Penapis ini ditakrifkan sebagai pemalar dan boleh digabungkan mengikut keperluan. Contohnya, anda boleh menggunakan penapis FILTER_SANITIZE_STRING untuk mengalih keluar semua teg dan aksara khas daripada rentetan.

Berikut ialah beberapa penapis yang paling biasa digunakan:

  • FILTER_VALIDATE_EMAIL digunakan untuk mengesahkan kesahihan alamat e-mel
  • FILTER_VALIDATE_INT digunakan untuk mengesahkan integer, dan julat nilai integerATFILTER_DATE boleh ditentukan sahkan nombor titik terapung
  • FILTER_VALIDATE_ IP untuk Sahkan alamat IP
  • FILTER_VALIDATE_URL digunakan untuk mengesahkan kesahihan URL
  • Setelah penapis yang akan digunakan ditentukan, fungsi filter_var() boleh menapis dan mengesahkan data pengguna seperti:
$name = filter_var($_POST['name'], FILTER_SANITIZE_STRING);
$email = filter_var($_POST['email'], FILTER_VALIDATE_EMAIL);
if (!$email) {
     echo "Invalid email address";
}
Salin selepas log masuk

Dalam contoh di atas, $_POST['nama'] dan $_POST['email'] ialah data yang diserahkan melalui borang. Penapis pertama akan mengalih keluar semua teg dan aksara khas daripada nilai input, dan penapis kedua akan mengesahkan kesahihan alamat e-mel. Jika alamat e-mel tidak sah, "Alamat e-mel tidak sah" akan dikeluarkan.

Fungsi filter_var() juga boleh digunakan untuk menapis dan mengesahkan nilai dalam tatasusunan. Contohnya:

$data = array(
     'name' => 'John Smith',
     'age' => '30',
     'email' => 'john.smith@example.com'
);

$filteredData = filter_var_array($data, array(
     'name' => FILTER_SANITIZE_STRING,
     'age' => array(
          'filter' => FILTER_VALIDATE_INT,
          'options' => array(
               'min_range' => 18,
               'max_range' => 100
          )
     ),
     'email' => FILTER_VALIDATE_EMAIL
));
Salin selepas log masuk

Dalam contoh di atas, tatasusunan $data mengandungi beberapa data input pengguna. Fungsi filter_var_array() akan menapis dan mengesahkan tatasusunan dan mengembalikan tatasusunan baharu $filteredData. Setiap nilai ditapis dan disahkan menggunakan penapis yang sesuai. Sebagai contoh, nilai umur akan disahkan menggunakan FILTER_VALIDATE_INT dan tatasusunan pilihan untuk memastikan nilai antara 18 dan 100.

Selain penapis yang dinyatakan di atas, fungsi filter_var() mempunyai beberapa penapis berguna lain. Contohnya, FILTER_SANITIZE_NUMBER_INT digunakan untuk mengalih keluar semua aksara daripada rentetan kecuali nombor dan tanda tambah/tolak. FILTER_SANITIZE_SPECIAL_CHARS digunakan untuk mengalih keluar tag HTML dan PHP daripada rentetan dan petikan melarikan diri.

Untuk meringkaskan, keselamatan dalam aplikasi web adalah penting, dan data input pengguna biasanya merupakan salah satu faktor yang terdedah. Fungsi filter_var() boleh digunakan untuk menapis dan mengesahkan data input pengguna dengan berkesan untuk memastikan integriti dan keselamatan data. Dengan menggunakan penapis yang sesuai, anda boleh mengesahkan alamat e-mel, integer dan nombor titik terapung dengan mudah, tag penapis dalam rentetan, mengalih keluar aksara khas dan banyak lagi.

Atas ialah kandungan terperinci Fungsi PHP filter_var(): menapis dan mengesahkan input pengguna. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan