Dalam program PHP, memproses penyerahan borang adalah operasi yang sangat biasa. Tetapi kadangkala semasa proses penyerahan borang, kita mungkin menghadapi beberapa aksara yang bercelaru. Dalam artikel ini, kita akan membincangkan bagaimana untuk menyelesaikan masalah bercelaru pos borang php.
Apakah itu kod bercelaru? Ringkasnya, aksara bercelaru ialah paparan aksara tidak normal yang disebabkan oleh pengekodan aksara yang tidak konsisten. Pengekodan aksara ialah peraturan untuk memetakan aksara kepada nombor. Pengekodan aksara biasa termasuk ASCII, GBK, UTF-8, dsb.
Dalam persekitaran Web, pengekodan aksara yang digunakan oleh penyemak imbas dan pelayan perlu konsisten untuk paparan biasa, jika tidak, aksara yang bercelaru akan dijana. Jika borang yang diserahkan mengandungi aksara Cina dan pelayan tidak mengendalikan pengekodan dengan betul, maka masalah kod bercelaru seperti itu akan berlaku.
Seterusnya, kami akan memperkenalkan tiga kaedah untuk menyelesaikan masalah kod bercelaru pasca borang php.
Kaedah 1: Tetapkan pengekodan borang
Tambahkan atribut pengekodan dalam borang HTML untuk menentukan pengekodan penyerahan borang, seperti ditunjukkan di bawah:
<form action="process.php" method="post" accept-charset="UTF-8"> <!-- 表单元素 --> </form>
Ditentukan di sini Gunakan pengekodan UTF-8 semasa menghantar borang. Kita harus memastikan pengekodan penyerahan borang konsisten dengan tetapan pengekodan dalam skrip pelayan.
Kaedah 2: Tetapkan pengekodan skrip PHP
Jika kami menggunakan pelayan web Apache, anda boleh menetapkan pengekodan dalam fail .htaccess dengan menambahkan kod berikut:
AddDefaultCharset UTF-8
Dalam fail konfigurasi php.ini, kita boleh menetapkan pilihan berikut untuk menetapkan set aksara lalai PHP:
default_charset = "UTF-8" mbstring.language = Japanese mbstring.internal_encoding = UTF-8 mbstring.http_input = UTF-8 mbstring.http_output = UTF-8
Set aksara lalai ditentukan di sini sebagai UTF-8, dan input dan output didayakan.
Kaedah 3: Gunakan PHP untuk memproses data borang
Kaedah terakhir ialah menggunakan fungsi terbina dalam skrip PHP untuk memproses data borang. Kaedah ini lebih sesuai digunakan dalam rangka kerja yang ditulis oleh sendiri, seperti yang ditunjukkan di bawah :
<?php if (isset($_POST['submit'])) { // 设置编码 header('Content-Type: text/html; charset=UTF-8'); // 处理表单数据 $name = htmlspecialchars($_POST['name'], ENT_QUOTES, 'UTF-8'); $email = htmlspecialchars($_POST['email'], ENT_QUOTES, 'UTF-8'); //...... } ?>
Berhati-hati menggunakan fungsi htmlspecialchars untuk memproses data input untuk mengelakkan serangan XSS.
Dengan memahami masalah aksara bercelaru dan mengambil penyelesaian yang sepadan, kita boleh mengelakkan aksara bercelaru semasa proses penyerahan pos borang php. Kita boleh menyelesaikan masalah aksara bercelaru dengan menetapkan pengekodan borang, menetapkan pengekodan skrip PHP dan menggunakan PHP untuk memproses data borang. Tetapi kita masih harus memberi lebih perhatian dan mengikuti piawaian pengekodan yang konsisten semasa proses pembangunan untuk memastikan keteguhan dan kebolehselenggaraan program.
Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan masalah bercelaru jawatan borang php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!