Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Parameter yang diluluskan dalam php post dalam bentuk bercelaru

Parameter yang diluluskan dalam php post dalam bentuk bercelaru

WBOY
WBOYasal
2023-05-05 21:03:08541semak imbas

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?

  1. Sahkan sama ada kaedah pengekodan adalah konsisten

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);
  1. Tetapkan maklumat pengepala HTTP

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');
  1. Tetapkan kaedah pengekodan borang dalam HTML

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>
  1. Gunakan mb_convert_encoding() untuk menukar pengekodan

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');
  1. Gunakan iconv() untuk menukar pengekodan

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!

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