Membawa anda melalui penapis PHP dalam masa tiga minit (contoh terperinci)

WBOY
Lepaskan: 2023-03-13 15:28:02
asal
2602 orang telah melayarinya

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!

Membawa anda melalui penapis PHP dalam masa tiga minit (contoh terperinci)

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_inputfilter_input_arraySeterusnya, mari kita ambil contoh untuk mengesahkan integer melalui fungsi

Contohnya adalah seperti berikut:

filter_var()

Hasil keluaran:
<?php
header("Content-type:text/html;charset=utf-8");
$int = 123;
if(!filter_var($int, FILTER_VALIDATE_INT))
{
    echo("不是一个合法的整数");
}
else
{
    echo("是个合法的整数");
}
?>
Salin selepas log masuk


.

Membawa anda melalui penapis PHP dalam masa tiga minit (contoh terperinci)Contoh di atas mengesahkan integer melalui fungsi penapis filter_var() Seterusnya, mari kita lihat dua penapis yang biasa digunakan.

  • Mengesahkan

    <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> Penapis : digunakan untuk membenarkan atau melarang aksara tertentu dalam rentetan, tiada Peraturan format data, sentiasa mengembalikan rentetan.

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("是个合法的整数");
}
?>
Salin selepas log masuk

Hasil keluaran:

Membawa anda melalui penapis PHP dalam masa tiga minit (contoh terperinci)

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";
    }
}
?>
Salin selepas log masuk

Hasil keluaran: <🎜. >

Membawa anda melalui penapis PHP dalam masa tiga minit (contoh terperinci)

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;
}
?>
Salin selepas log masuk

输出结果:

Membawa anda melalui penapis PHP dalam masa tiga minit (contoh terperinci)

其中我们需要注意的是:

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!

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