Rumah >pembangunan bahagian belakang >tutorial php >Petua Pantas: Cara Menapis Data dengan PHP
mata utama
filter_var()
untuk menjadikan aplikasi PHP anda lebih selamat dan lebih dipercayai. filter_input()
Benar -benar tidak mempercayai input luaran dalam aplikasi . Ini adalah salah satu pelajaran yang paling penting yang perlu dipelajari oleh sesiapa sahaja yang membangunkan aplikasi web.
Input luaran boleh menjadi apa -apa - data input dari dan $_GET
bentuk, unsur -unsur tertentu dalam badan permintaan HTTP, dan juga nilai -nilai tertentu dalam pembolehubah hyperglobal $_POST
. Kuki, nilai sesi, dan fail dokumen yang dimuat naik dan dimuat turun juga dianggap input luaran. $_SERVER
Dari segi penapisan, terdapat dua jenis utama: pengesahan dan pembersihan.
Pengesahan
Sahkan bahawa input luaran memenuhi jangkaan kami. Sebagai contoh, kami mungkin mengharapkan alamat e -mel, jadi kami mengharapkan format yang serupa dengan. Untuk melakukan ini, kita boleh menggunakan penapis name@domain.com
. Atau, jika kita mengharapkan boolean, kita boleh menggunakan penapis PHP FILTER_VALIDATE_EMAIL
. FILTER_VALIDATE_BOOL
, FILTER_VALIDATE_BOOL
dan FILTER_VALIDATE_INT
untuk penapisan jenis asas, dan FILTER_VALIDATE_FLOAT
dan FILTER_VALIDATE_EMAIL
untuk menapis e -mel dan nama domain, masing -masing. FILTER_VALIDATE_DOMAIN
, yang membolehkan kita menapis mengikut ungkapan biasa. Dengan penapis ini, kita boleh membuat penapis tersuai dengan menukar ekspresi biasa yang kita tapis. FILTER_VALIDATE_REGEXP
Pembersihan
Pembersihan adalah proses mengeluarkan aksara haram atau tidak selamat dari input luaran.Contoh terbaik ialah kita membersihkan input pangkalan data sebelum memasukkannya ke dalam pertanyaan SQL asal.
Sama, beberapa penapis pembersihan yang paling berguna termasuk penapis untuk membersihkan jenis asas seperti FILTER_SANITIZE_STRING
, FILTER_SANITIZE_CHARS
dan FILTER_SANITIZE_INT
, serta FILTER_SANITIZE_URL
dan FILTER_SANITIZE_EMAIL
untuk membersihkan URL dan mel elektronik.
Semua penapis pembersihan PHP boleh didapati di sini.
filter_var()
dan filter_input()
Sekarang kita tahu bahawa PHP menyediakan pelbagai penapis, kita perlu tahu cara menggunakannya.
Aplikasi penapis dilakukan melalui fungsi filter_var()
dan filter_input()
.
filter_var()
menggunakan penapis yang ditentukan kepada pembolehubah. Ia akan mendapat nilai untuk menapis, penapis untuk memohon, dan pelbagai pilihan pilihan. Sebagai contoh, jika kita cuba mengesahkan alamat e -mel, kita boleh menggunakan kod berikut:
<code class="language-php"><?php $email = 'your.email@sitepoint.com'; if (filter_var($email, FILTER_VALIDATE_EMAIL)) { echo("This email is valid"); }</code>
Jika matlamatnya adalah untuk membersihkan rentetan, kita boleh menggunakan kod berikut:
<code class="language-php"><?php $string = "<h1>Hello World</h1>"; $sanitized_string = filter_var($string, FILTER_SANITIZE_STRING); echo $sanitized_string;</code>Fungsi
filter_input()
mengambil input luaran dari input borang dan menapisnya.
filter_var()
Begitu juga, jika kita ingin menyemak sama ada "e -mel" pembolehubah input luaran dihantar ke permohonan kami melalui GET, kita boleh menggunakan kod berikut:
<code class="language-php"><?php if (filter_input(INPUT_GET, "email", FILTER_VALIDATE_EMAIL)) { echo "The email is being sent and is valid."; }</code>Kesimpulan
Ini adalah asas penapisan data dalam PHP. Teknik lain boleh digunakan untuk menapis data luaran, seperti menggunakan ungkapan biasa, tetapi teknik yang kita lihat dalam artikel ini mencukupi untuk kebanyakan kes penggunaan.
Pastikan anda memahami perbezaan antara pengesahan dan pembersihan dan cara menggunakan fungsi penapis. Dengan pengetahuan ini, aplikasi PHP anda akan lebih dipercayai dan selamat!
Soalan Lazim Mengenai Penapisan Data PHP (FAQ)
Bagaimana penapisan data PHP berfungsi?
, dan filter_var()
. filter_input()
Beberapa fungsi penapis PHP biasa termasuk filter_var()
, filter_input()
, filter_has_var()
, dan filter_id()
. Fungsi filter_var()
menggunakan penapis yang ditentukan untuk menapis pembolehubah. filter_input()
Fungsi mengambil pembolehubah luaran tertentu dengan nama dan menapisnya secara pilihan. Fungsi filter_has_var()
memeriksa sama ada pemboleh ubah jenis input yang ditentukan wujud, manakala fungsi filter_id()
mengembalikan ID penapis milik penapis yang dinamakan.
filter_var()
dalam php? fungsi filter_var()
dalam PHP digunakan untuk menapis pembolehubah menggunakan penapis yang ditentukan. Ia menerima dua parameter: pembolehubah yang akan ditapis dan jenis penapis yang akan digunakan. Sebagai contoh, untuk mengesahkan bahawa pembolehubah adalah e -mel, anda boleh menggunakan penapis FILTER_VALIDATE_EMAIL
dengan fungsi filter_var()
seperti berikut:
<code class="language-php"><?php $email = 'your.email@sitepoint.com'; if (filter_var($email, FILTER_VALIDATE_EMAIL)) { echo("This email is valid"); }</code>
Mengesahkan data dalam PHP melibatkan memeriksa sama ada data memenuhi syarat -syarat tertentu. Sebagai contoh, anda boleh mengesahkan alamat e -mel anda untuk memastikan ia diformat dengan betul. Sebaliknya, pembersihan data melibatkan pemadaman atau menggantikan mana -mana aksara haram atau tidak selamat dari data. Ini sering bertujuan untuk mengelakkan kelemahan keselamatan seperti suntikan SQL dan skrip lintas tapak (XSS).
Anda boleh menggunakan fungsi filter_input()
dan penapis pembersihan untuk membersihkan input pengguna dalam PHP. Sebagai contoh, untuk membersihkan nama pengguna mendapatkan input, anda boleh menggunakan penapis FILTER_SANITIZE_STRING
seperti berikut:
<code class="language-php"><?php $string = "<h1>Hello World</h1>"; $sanitized_string = filter_var($string, FILTER_SANITIZE_STRING); echo $sanitized_string;</code>
bendera penapis PHP digunakan untuk menambah kekangan tambahan atau pengubah suai ke proses penapisan. Beberapa tanda biasa termasuk FILTER_FLAG_STRIP_LOW
, FILTER_FLAG_STRIP_HIGH
, FILTER_FLAG_ENCODE_LOW
dan FILTER_FLAG_ENCODE_HIGH
. Sebagai contoh, bendera FILTER_FLAG_STRIP_LOW
membuang aksara dengan nilai ASCII di bawah 32 dari input.
Anda boleh menggunakan bendera penapis dalam PHP dengan meluluskannya sebagai hujah ketiga ke fungsi filter_var()
atau filter_input()
. Sebagai contoh, untuk menapis alamat IP dan membenarkan hanya alamat IPv4, anda boleh menggunakan bendera FILTER_FLAG_IPV4
seperti berikut:
<code class="language-php"><?php if (filter_input(INPUT_GET, "email", FILTER_VALIDATE_EMAIL)) { echo "The email is being sent and is valid."; }</code>
filter_has_var()
dalam php? Fungsi filter_has_var()
dalam PHP digunakan untuk memeriksa sama ada pemboleh ubah jenis input yang ditentukan wujud. Ia menerima dua parameter: jenis input dan nama berubah. Pulangan benar jika pembolehubah wujud;
filter_has_var()
dalam php? anda boleh menggunakan fungsi filter_has_var()
dalam PHP untuk memeriksa sama ada pemboleh ubah input tertentu wujud. Sebagai contoh, untuk memeriksa sama ada pembolehubah pos bernama "Nama Pengguna" wujud, anda boleh melakukan ini:
<code class="language-php"><?php $email = 'your.email@sitepoint.com'; if (filter_var($email, FILTER_VALIDATE_EMAIL)) { echo("This email is valid"); }</code>
Atas ialah kandungan terperinci Petua Pantas: Cara Menapis Data dengan PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!