Rumah > pembangunan bahagian belakang > tutorial php > Mengapakah `enctype='text/plain'` tidak serasi dengan kaedah POST dalam bentuk HTML?

Mengapakah `enctype='text/plain'` tidak serasi dengan kaedah POST dalam bentuk HTML?

Barbara Streisand
Lepaskan: 2024-12-16 04:37:11
asal
981 orang telah melayarinya

Why is `enctype=

Mengapa "method="post" enctype="text/plain"" tidak serasi?

Apabila menggunakan kaedah pengekodan borang HTML "post" dengan "enctype="text/plain"," data borang gagal dihantar ke skrip PHP. Apakah sebab di sebalik isu ini? Mengapa pengekodan teks/biasa tidak serasi dengan siaran sedangkan ia dibenarkan dengan get?

Penjelasan

PHP tidak menyokong "enctype="text/plain"" untuk " method="post"; ia bukan pepijat program.

Nilai yang diluluskan untuk "enctype" dalam bentuk ialah:

  • application/x-www-form-urlencoded
  • multipart/form-data

Pilihan pertama ialah lalai, manakala yang kedua adalah penting untuk muat naik fail.

PHP tidak mengisi tatasusunan $_POST apabila "enctype="text/plain"" digunakan sebaliknya, ia menyimpan nilai dalam $HTTP_RAW_POST_DATA.

Potensi Isu dengan Pengekodan Teks/Plain

Pertimbangkan senario berikut:

Dalam file1.php:

<form method="post" enctype="text/plain" action="file2.php">
  <textarea name="input1">abc
input2=def</textarea>
  <input name="input2" value="ghi" />
  <input type="submit">
</form>
Salin selepas log masuk

Dalam file2.php:

<?php
print($HTTP_RAW_POST_DATA);
?>
Salin selepas log masuk

Hasil yang dijangkakan:

input1=abc
input2=def
input2=ghi
Salin selepas log masuk

Walau bagaimanapun, dengan pengekodan teks/biasa, terdapat tiada cara untuk membezakan nilai input1 dan input2 Hasilnya boleh jadi:

  • input1=abcrninput2=def, input2=ghi
  • input1=abc, input2=defrninput2=ghi

Perbezaan antara GET dan POST ialah:

  • GET pembolehubah muncul dalam URL sebagai pertanyaan rentetan dan mesti dikodkan URL, walaupun dengan enctype="text/plain."
  • Pembolehubah POST dihantar dalam pengepala akhir permintaan HTTP (POSTDATA), membenarkan pengekodan sama ada sebagai teks/plain atau aplikasi/x -www-form-urlencoded. Walau bagaimanapun, yang terakhir lebih disukai untuk mengelakkan kekaburan.

Atas ialah kandungan terperinci Mengapakah `enctype='text/plain'` tidak serasi dengan kaedah POST dalam bentuk HTML?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan