Petua Pengaturcaraan PHP: Cara mengendalikan penapisan data borang
Dalam pembangunan web, borang adalah cara interaksi yang sangat biasa Pengguna memasukkan data melalui borang dan menyerahkan data ini kepada pelayan untuk diproses. Walau bagaimanapun, memandangkan input pengguna tidak boleh dikawal, kami perlu menapis dan mengesahkan data borang dengan berkesan untuk memastikan keselamatan dan kebolehpercayaan data. Artikel ini akan memperkenalkan beberapa teknik pengaturcaraan PHP yang biasa digunakan untuk membantu anda memproses penapisan data borang.
filter_input()
: Fungsi ini boleh menapis GET, POST, COOKIE dan data lain serta menentukan jenis penapis. Sebagai contoh, kita boleh menggunakan filter_input(INPUT_POST, 'name', FILTER_SANITIZE_STRING)
untuk menapis data POST bernama 'name' dan menukarnya kepada rentetan. FILTER_SANITIZE_STRING
digunakan untuk mengalih keluar teg HTML dan aksara khas. filter_input()
: 这个函数可以过滤GET、POST、COOKIE等数据,并指定过滤器类型。例如,我们可以使用filter_input(INPUT_POST, 'name', FILTER_SANITIZE_STRING)
来过滤名为'name'的POST数据,并将其转换为字符串。FILTER_SANITIZE_STRING
用于移除HTML标签和特殊字符。filter_var()
: 这个函数可以过滤任意类型的变量,并指定过滤器类型。例如,我们可以使用filter_var($email, FILTER_VALIDATE_EMAIL)
来验证一个电子邮件地址是否合法。FILTER_VALIDATE_EMAIL
用于验证电子邮件地址。filter_var_array()
: 这个函数可以过滤一个数组中的多个变量。例如,我们可以使用filter_var_array($_POST, $filters)
来过滤$_POST数组中的多个数据,并指定每个数据的过滤器类型。$filters是一个关联数组,其中键是数据的名称,值是过滤器类型。以下是一个示例代码,演示如何使用以上过滤函数过滤表单数据:
$name = filter_input(INPUT_POST, 'name', FILTER_SANITIZE_STRING); $email = filter_input(INPUT_POST, 'email', FILTER_VALIDATE_EMAIL); $filters = array( 'name' => FILTER_SANITIZE_STRING, 'email' => FILTER_VALIDATE_EMAIL ); $data = filter_var_array($_POST, $filters);
$name = $_POST['name']; if (!preg_match("/^[a-zA-Z ]*$/", $name)) { echo "只允许字母和空格!"; }
在上面的代码中,使用正则表达式/^[a-zA-Z ]*$/
filter_var()
: Fungsi ini boleh menapis sebarang jenis pembolehubah dan menentukan jenis penapis. Sebagai contoh, kami boleh menggunakan filter_var($email, FILTER_VALIDATE_EMAIL)
untuk mengesahkan sama ada alamat e-mel adalah sah. FILTER_VALIDATE_EMAIL
digunakan untuk mengesahkan alamat e-mel. filter_var_array()
: Fungsi ini boleh menapis berbilang pembolehubah dalam tatasusunan. Sebagai contoh, kita boleh menggunakan filter_var_array($_POST, $filters)
untuk menapis berbilang data dalam tatasusunan $_POST dan menentukan jenis penapis bagi setiap data. $filters ialah tatasusunan bersekutu dengan kuncinya ialah nama data dan nilainya ialah jenis penapis. $name = $_POST['name']; $email = $_POST['email']; $stmt = $conn->prepare("INSERT INTO users (name, email) VALUES (?, ?)"); $stmt->bind_param("ss", $name, $email); $stmt->execute(); $stmt->close();
Menggunakan ungkapan biasa
Ekspresi biasa ialah alat berkuasa yang boleh digunakan untuk padanan dan rentetan penapis. Menggunakan ungkapan biasa, anda mentakrifkan corak dan kemudian menggunakan corak untuk mengesahkan bahawa rentetan sepadan. Berikut ialah contoh kod yang menunjukkan cara menggunakan ungkapan biasa untuk menapis data borang:
rrreee
/^[a-zA-Z ]*$/
Padanan rentetan yang mengandungi hanya huruf dan ruang. Jika perlawanan gagal, mesej segera dikeluarkan. 🎜Cegah SQL Injection🎜Apabila memproses data borang, kita perlu memberi perhatian untuk mencegah serangan suntikan SQL. Untuk mengelakkan suntikan SQL, kita harus menggunakan pernyataan yang disediakan dan pertanyaan berparameter untuk mengendalikan pertanyaan pangkalan data. Berikut ialah contoh kod yang menunjukkan cara mencegah suntikan SQL: 🎜🎜rrreee🎜 Dalam kod di atas, kami menggunakan penyata yang disediakan dan kaedah bind_param() untuk memasukkan data borang ke dalam pangkalan data. Parameter pertama kaedah bind_param() ialah jenis data dan "ss" bermaksud kedua-dua parameter ialah rentetan. 🎜🎜Ringkasan: 🎜Apabila memproses data borang, penapisan data adalah penting. Menggunakan fungsi penapisan, ungkapan biasa dan teknologi pencegahan suntikan SQL boleh melindungi keselamatan dan kebolehpercayaan data dengan berkesan. Anda perlu memilih kaedah penapisan yang sesuai berdasarkan keperluan sebenar, dan memberi perhatian kepada pengendalian ralat dan pengecualian dalam kod. 🎜🎜Di atas adalah pengenalan kepada kemahiran pengaturcaraan PHP: cara mengendalikan penapisan data borang saya harap ia akan membantu anda! 🎜Atas ialah kandungan terperinci Petua Pengaturcaraan PHP: Cara Mengendalikan Penapisan Data Borang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!