Rumah > Artikel > pembangunan bahagian belakang > Parameter yang diluluskan dalam php post dalam bentuk bercelaru
Apabila menyerahkan borang kepada pelayan, kami biasanya menggunakan kaedah $_POST PHP untuk mendapatkan nilai parameter yang diluluskan oleh bahagian hadapan. Tetapi kadangkala, kami menghadapi masalah parameter bercelaru yang diluluskan, yang bukan sahaja menyebabkan bahagian belakang tidak dapat menghuraikan nilai parameter dengan betul, tetapi juga menyebabkan bahagian hadapan memperoleh hasil data yang salah. Jadi bagaimana untuk menangani keadaan ini?
Apabila menghantar data, pelanggan dan pelayan perlu bersetuju dengan kaedah pengekodan, secara amnya menggunakan pengekodan UTF-8. Tetapi kadangkala kita mungkin menghadapi ketidakkonsistenan dalam kaedah pengekodan bahagian hadapan dan belakang Pada masa ini, kita perlu menukar kaedah pengekodan secara seragam.
Dalam PHP, anda boleh menggunakan urlencode(), rawurlencode(), http_build_query() dan kaedah lain untuk mengekod data yang diserahkan bagi memastikan pengekodan yang konsisten. Contohnya:
urlencode($_POST['name']); rawurlencode($_POST['name']); http_build_query($_POST);
Maklumat pengepala Jenis Kandungan dalam protokol HTTP menerangkan jenis MIME permintaan dan respons. Apabila kaedah pengekodan data yang dipindahkan antara klien dan pelayan tidak konsisten, kaedah pengekodan perlu ditetapkan dalam maklumat pengepala HTTP.
Dalam PHP, anda boleh menggunakan kaedah pengepala() untuk menetapkan maklumat pengepala Jenis Kandungan. Contohnya:
header('Content-Type: text/html; charset=utf-8');
Dalam HTML, anda boleh menetapkan kaedah pengekodan borang untuk memastikan kaedah pengekodan data yang dihantar adalah konsisten. Anda boleh menggunakan atribut accept-charset dalam elemen borang untuk menentukan kaedah pengekodan. Contohnya:
<form action="http://example.com" accept-charset="utf-8"> <input type="text" name="name"> </form>
mb_convert_encoding(string $str, string $to_enc [, mixed $from_enc = mb_internal_encoding()]) Fungsi ini boleh Menukar rentetan daripada satu pengekodan aksara kepada yang lain. Contohnya:
$str = $_POST['name']; $str = mb_convert_encoding($str, 'UTF-8', 'GBK');
iconv(string $in_charset, string $out_charset, string $str) boleh menukar rentetan daripada satu Tukar pengekodan aksara kepada pengekodan aksara yang lain. Contohnya:
$str = $_POST['name']; $str = iconv('GBK', 'UTF-8', $str);
Ringkasan:
Apabila parameter penyerahan borang bercelaru, anda perlu memberi perhatian untuk menyemak sama ada kaedah pengekodan semasa penghantaran data adalah konsisten dan sama ada maklumat pengepala HTTP, pengekodan borang, dsb. ialah tetapan yang betul, dan pastikan anda menggunakan fungsi transcoding yang disediakan dalam PHP untuk penukaran pengekodan. Kaedah-kaedah ini boleh menghalang aksara yang bercelaru dengan berkesan dan memastikan penghuraian data bahagian belakang yang betul dan paparan data bahagian hadapan yang betul.
Atas ialah kandungan terperinci Parameter yang diluluskan dalam php post dalam bentuk bercelaru. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!