Rumah >pembangunan bahagian belakang >tutorial php >Mengapa PHP Tidak Mengendalikan `enctype=text/plain` dengan betul dalam Borang `method=post`?
Borang Penghantaran Data dengan "enctype=text/plain" dalam Permintaan "method=post"
Isu berkenaan dengan penggunaan " enctype=text/plain" dalam atribut "method=post" borang. Walaupun pengekodan ini serasi dengan atribut "method=get", ia menimbulkan isu keserasian apabila digandingkan dengan "method=post".
Penjelasan
PHP tidak semestinya mengendalikan pengekodan "teks/plain" semasa memproses permintaan "siaran". Oleh itu, data borang tidak diisi dengan betul ke dalam tatasusunan $_POST. Sebaliknya, data disimpan dalam pembolehubah $HTTP_RAW_POST_DATA.
Perbezaan Antara Pengekodan GET dan POST
Dalam senario "enctype=text/plain" "method=get" , pembolehubah adalah dikodkan URL dan disertakan dalam rentetan pertanyaan. Proses ini mengendalikan pengekodan aksara dengan mudah tanpa kesamaran.
Walau bagaimanapun, dalam senario "enctype=text/plain" "method=post", pembolehubah dihantar dalam pengepala POSTDATA. Pendekatan ini tidak mempunyai pengekodan URL yang wujud, yang membawa kepada potensi kekaburan data.
Pengekodan Sah untuk Permintaan "method=post"
PHP hanya mengiktiraf dua pengekodan yang sah untuk "method =post" permintaan:
Pengekodan dahulu ialah pengekodan lalai, manakala pengekodan yang kedua diperlukan untuk muat naik fail.
Akibat Penggunaan "teks/plain" Pengekodan
Menggunakan pengekodan "teks/plain" dengan "method=post" boleh mengakibatkan kerosakan data. Sebagai contoh, jika wujud berbilang pembolehubah dengan nama yang serupa, data mungkin menjadi tidak dapat dibezakan, yang membawa kepada pemprosesan yang salah pada bahagian pelayan.
Alternatif kepada Pengekodan "teks/biasa"
Jika pengekodan aksara dikehendaki, pertimbangkan untuk menggunakan pengekodan "application/x-www-form-urlencoded". URL pendekatan ini mengekod data borang untuk memastikan penghantaran yang betul dan menghapuskan keperluan untuk pengurusan aksara tambahan.
Atas ialah kandungan terperinci Mengapa PHP Tidak Mengendalikan `enctype=text/plain` dengan betul dalam Borang `method=post`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!