Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimanakah PHP mengendalikan pengesahan borang dan penapisan data?

Bagaimanakah PHP mengendalikan pengesahan borang dan penapisan data?

王林
王林asal
2023-06-29 11:06:071111semak imbas

PHP, sebagai bahasa skrip bahagian pelayan yang digunakan secara meluas, mempunyai fungsi pengesahan bentuk dan penapisan data yang berkuasa. Dalam proses membangunkan aplikasi web, borang adalah bahagian penting dalam interaksi maklumat antara pengguna dan pelayan. Oleh itu, pengesahan borang dan penapisan data adalah langkah yang perlu untuk memastikan keselamatan data dan keteguhan program.

Dalam PHP, anda boleh menerima data penyerahan borang melalui pembolehubah super global $_POST atau $_GET. Secara umumnya, $_POST harus digunakan untuk menerima data borang pengguna, kerana penghantaran datanya adalah melalui kaedah POST, yang secara relatifnya lebih selamat.

Untuk pengesahan borang, PHP menyediakan banyak fungsi terbina dalam dan ungkapan biasa, yang boleh dipilih mengikut keperluan khusus. Beberapa kaedah pengesahan bentuk biasa diperkenalkan di bawah.

  1. Pengesahan bukan kosong: Gunakan fungsi empty() untuk menentukan sama ada input pengguna kosong. Contohnya:
if(empty($_POST['username'])){
    echo "用户名不能为空";
}
  1. Pengesahan panjang: Anda boleh menggunakan fungsi strlen() untuk mengira panjang aksara yang dimasukkan oleh pengguna, dan kemudian menentukan sama ada ia memenuhi keperluan. Contohnya:
if(strlen($_POST['password']) < 6){
    echo "密码长度不能小于6个字符";
}
  1. Pengesahan berangka: Jika pengguna dikehendaki memasukkan nombor, anda boleh menggunakan fungsi is_numeric() untuk mengesahkan. Contohnya:
if(!is_numeric($_POST['age'])){
    echo "年龄必须是数字";
}
  1. Pengesahan e-mel: Anda boleh menggunakan fungsi filter_var() digabungkan dengan penapis FILTER_VALIDATE_EMAIL untuk mengesahkan sama ada format e-mel adalah betul. Contohnya:
if(!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)){
     echo "邮箱格式不正确";
}
  1. Pengesahan ungkapan biasa: Ekspresi biasa ialah alat padanan corak yang berkuasa yang boleh mengesahkan input pengguna melalui fungsi preg_match(). Contohnya, sahkan nombor telefon mudah alih:
if(!preg_match("/^1[3456789]d{9}$/", $_POST['phone'])){
    echo "手机号码格式不正确";
}

Selain pengesahan asas di atas, anda juga boleh melakukan pengesahan borang yang lebih kompleks berdasarkan keperluan perniagaan tertentu, seperti mengesahkan kekuatan kata laluan, mengesahkan sama ada nama pengguna sudah wujud, dsb.

Semasa melakukan pengesahan borang, anda juga perlu memberi perhatian kepada penapisan data dan keselamatan. PHP menyediakan beberapa fungsi penapisan untuk mengelakkan potensi kelemahan keselamatan.

  1. Penapis serangan XSS: Gunakan fungsi htmlspecialchars() untuk menapis aksara khas yang dimasukkan oleh pengguna untuk mengelakkan serangan XSS. Contohnya:
$username = htmlspecialchars($_POST['username']);
  1. Penapisan suntikan SQL: Gunakan fungsi mysqli_real_escape_string() untuk melepaskan data yang dimasukkan pengguna untuk menghalang suntikan SQL. Contohnya:
$username = mysqli_real_escape_string($conn, $_POST['username']);

Perlu diingatkan bahawa walaupun fungsi penapis boleh memberikan keselamatan tertentu, ia tidak dapat menghalang sepenuhnya semua ancaman keselamatan. Dalam pembangunan sebenar, langkah keselamatan lain perlu digabungkan, seperti menggunakan pernyataan yang disediakan dan parameter terikat untuk mengelakkan suntikan SQL.

Ringkasnya, PHP menyediakan fungsi pengesahan bentuk dan penapisan data yang kaya, yang boleh melindungi keselamatan input pengguna dan keteguhan program dengan berkesan. Pembangun harus memilih kaedah pengesahan yang sepadan berdasarkan keperluan khusus dan memberi perhatian kepada penapisan data dan keselamatan. Ini memastikan aplikasi web berfungsi dengan betul dan memberikan pengalaman pengguna yang lebih baik.

Atas ialah kandungan terperinci Bagaimanakah PHP mengendalikan pengesahan borang dan penapisan data?. 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