Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Petua pengesahan borang PHP: Cara menggunakan fungsi filter_var_array untuk mengesahkan berbilang input pengguna

Petua pengesahan borang PHP: Cara menggunakan fungsi filter_var_array untuk mengesahkan berbilang input pengguna

王林
王林asal
2023-07-30 10:49:10747semak imbas

Petua pengesahan borang PHP: Cara menggunakan fungsi filter_var_array untuk mengesahkan berbilang input pengguna

Pengesahan borang ialah langkah penting semasa membangunkan aplikasi web. Data yang dimasukkan pengguna mungkin mengandungi kod berbahaya atau data tidak sah, jadi ia perlu disahkan untuk memastikan keselamatan dan ketepatan aplikasi. Dalam PHP, terdapat fungsi filter_var_array() yang sangat mudah yang boleh digunakan untuk mengesahkan berbilang input borang. Artikel ini akan memperkenalkan cara menggunakan fungsi filter_var_array() untuk pengesahan borang, serta beberapa petua dan pertimbangan biasa. Fungsi

filter_var_array() menerima dua parameter: tatasusunan input dan tatasusunan peraturan penapis. Tatasusunan input mengandungi input pengguna yang perlu disahkan, dan tatasusunan peraturan penapis menerangkan cara untuk mengesahkan input ini. Berikut ialah contoh:

// 输入数组
$input = [
    'name' => $_POST['name'],
    'email' => $_POST['email'],
    'age' => $_POST['age']
];

// 过滤器规则数组
$filters = [
    'name' => FILTER_SANITIZE_STRING,
    'email' => FILTER_VALIDATE_EMAIL,
    'age' => [
        'filter' => FILTER_VALIDATE_INT,
        'options' => ['min_range' => 18, 'max_range' => 100]
    ]
];

// 使用filter_var_array()函数进行验证
$result = filter_var_array($input, $filters);

Dalam contoh di atas, kami mula-mula mencipta tatasusunan input $input, yang mengandungi input pengguna untuk disahkan. Seterusnya, kami mencipta tatasusunan peraturan penapis, $filters, yang menerangkan cara untuk mengesahkan setiap medan input. Dalam contoh ini, kami telah menggunakan penapis FILTER_SANITIZE_STRING pada medan 'nama', penapis FILTER_VALIDATE_EMAIL pada medan 'e-mel' dan penapis FILTER_VALIDATE_EMAIL pada 'umur'. Medan kod>' menggunakan penapis FILTER_VALIDATE_INT dan julat medan 'umur' ditetapkan antara 18 dan 100. name'字段使用了FILTER_SANITIZE_STRING过滤器,对'email'字段使用了FILTER_VALIDATE_EMAIL过滤器,对'age'字段使用了FILTER_VALIDATE_INT过滤器,并且指定了'age'字段的范围为18到100之间。

最后,我们调用了filter_var_array()函数,将输入数组和过滤器规则数组作为参数传递进去。函数会根据过滤器规则对输入数组进行验证,并返回一个包含验证结果的关联数组$result。如果验证成功,对应字段的值会保持不变;如果验证失败,对应字段的值会被设置为false。

接下来,我们可以根据$result数组中每个字段的验证结果来进行下一步的处理。例如,我们可以检查每个字段是否验证失败,并采取相应的操作:

if ($result['name'] === false) {
    echo '请输入有效的姓名。';
}

if ($result['email'] === false) {
    echo '请输入有效的电子邮件地址。';
}

if ($result['age'] === false) {
    echo '请输入有效的年龄(18-100)。';
}

在处理表单验证时,还有一些常见的技巧和注意事项需要注意:

  1. 在定义过滤器规则时,可以使用过滤器常量或过滤器选项来指定具体的验证条件。可以参考PHP官方文档来了解更多可用的过滤器。
  2. 可以在输入数组中使用数组和点号表示法来处理嵌套的表单字段。例如,$_POST['address']['city']可以表示为$input['address.city']
  3. Akhir sekali, kami memanggil fungsi filter_var_array(), menghantar tatasusunan input dan tatasusunan peraturan penapis sebagai parameter. Fungsi ini mengesahkan tatasusunan input mengikut peraturan penapis dan mengembalikan tatasusunan bersekutu $hasil yang mengandungi hasil pengesahan. Jika pengesahan berjaya, nilai medan sepadan akan kekal tidak berubah jika pengesahan gagal, nilai medan sepadan akan ditetapkan kepada palsu.
  4. Seterusnya, kita boleh meneruskan ke langkah seterusnya berdasarkan hasil pengesahan setiap medan dalam tatasusunan $result. Sebagai contoh, kami boleh menyemak sama ada setiap medan gagal pengesahan dan mengambil tindakan yang sewajarnya:
  5. rrreee
  6. Terdapat juga beberapa petua dan pertimbangan biasa yang perlu diambil perhatian semasa berurusan dengan pengesahan borang:

    Apabila mentakrifkan peraturan penapis , anda boleh menggunakan pemalar penapis atau pilihan penapis untuk menentukan syarat pengesahan tertentu. Anda boleh merujuk kepada dokumentasi PHP rasmi untuk mengetahui lebih lanjut mengenai penapis yang tersedia.

    🎜Anda boleh menggunakan tatasusunan dan tatatanda titik dalam tatasusunan input untuk mengendalikan medan borang bersarang. Contohnya, $_POST['address']['city'] boleh diwakili sebagai $input['address.city']. 🎜🎜Adalah disyorkan untuk mengalih keluar ruang hadapan dan belakang daripada data input sebelum pengesahan untuk mengelakkan masalah pengesahan tambahan. 🎜🎜Anda boleh menggunakan fungsi filter_has_var() untuk menyemak sama ada medan input yang ditentukan wujud. Jika medan adalah pilihan, anda boleh menggunakan fungsi ini untuk menentukan sama ada pengesahan diperlukan. 🎜🎜🎜Untuk meringkaskan, menggunakan fungsi filter_var_array() boleh mengesahkan berbilang input pengguna dengan mudah. Dengan mentakrifkan peraturan penapis dan pemprosesan dengan betul berdasarkan hasil pengesahan, keselamatan dan ketepatan data borang boleh dijamin dengan berkesan. Dalam pembangunan sebenar, kami boleh menentukan dan menggunakan lebih banyak peraturan penapis mengikut keperluan khusus untuk memenuhi pelbagai jenis keperluan pengesahan input. 🎜

Atas ialah kandungan terperinci Petua pengesahan borang PHP: Cara menggunakan fungsi filter_var_array untuk mengesahkan berbilang input pengguna. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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