Rumah >pembangunan bahagian belakang >tutorial php >Mengapakah Menggunakan `enctype='text/plain'` dengan Permintaan POST Menyebabkan Masalah dalam PHP?
"method="post" enctype="text/plain": Isu Keserasian
Apabila menggunakan elemen borang dengan kedua-dua kaedah= "post" dan enctype="text/plain", pengguna mungkin menghadapi masalah dengan penghantaran data ke fail PHP yang ditentukan Ini kerana PHP tidak menyokong pengendalian pengekodan teks/plain POST data.
Mengapakah pengekodan teks/biasa bermasalah?
Nilai sah untuk enctype termasuk application/x-www-form-urlencoded dan multipart/form-data. Yang pertama ialah lalai untuk permintaan POST, manakala yang kedua digunakan semasa memuat naik fail.
Apabila pengekodan teks/biasa digunakan dengan POST, PHP menyimpan data bentuk mentah dalam pembolehubah $HTTP_RAW_POST_DATA dan bukannya mengisi tatasusunan $_POST Ini boleh membawa kepada ketidakkonsistenan dan kekaburan dalam mengakses nilai borang.
Contoh<.>
Pertimbangkan perkara berikut borang:<form method="post" enctype="text/plain" action="proc.php"> <textarea name="input1">abc input2=def</textarea> <input name="input2" value="ghi" /> <input type="submit"> </form>Dalam fail PHP yang sepadan:
print($HTTP_RAW_POST_DATA);
Keputusan:
input1=abc input2=def input2=ghiSeperti yang dilihat di atas, adalah mustahil untuk bezakan antara nilai input1 dan input2, kerana ia boleh sama ada input1=abcrninput2=def, input2=ghi atau input1=abc, input2=defrninput2=ghi.Tidak seperti permintaan POST, permintaan GET sentiasa mengekod URL rentetan pertanyaan, walaupun jika enctype="text/plain" ditentukan. Ini kerana pembolehubah adalah sebahagian daripada URL itu sendiri.
Atas ialah kandungan terperinci Mengapakah Menggunakan `enctype='text/plain'` dengan Permintaan POST Menyebabkan Masalah dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!