私が使用している場合method = "post" enctype = "text/plain"は互換性がありませんか?
<form method="post" enctype="text/plain" action="proc.php">
フォームデータが正しくファイルをproc.phpに送信することはできません。どうして?何が問題ですか?なぜ私はポストでテキスト/プレーンなエンコーディングを使うことができないのですが、私はそれをgetメソッドで使うことができますか?
私が使用している場合method = "post" enctype = "text/plain"は互換性がありませんか?
<form method="post" enctype="text/plain" action="proc.php">
フォームデータが正しくファイルをproc.phpに送信することはできません。どうして?何が問題ですか?なぜ私はポストでテキスト/プレーンなエンコーディングを使うことができないのですが、私はそれをgetメソッドで使うことができますか?
[改訂] PHPがそれを処理しない(と、それはバグではありません)ので、答えは、次のとおりです。
https://bugs.php.net/bug.php?id=33741
Valid values for enctype in <form> tag are:
application/x-www-form-urlencoded
multipart/form-data
最初はデフォルトです、ファイルをアップロードするときに必要なのは2番目のものです。 PHPは$_POST
配列を移入が、変数$HTTP_RAW_POST_DATA
内の値が格納されていない理由の説明を提供
@Alohci。
text/plain
のenctypeと間違って行くことができるものの例:
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>
file2.php:
<?php
print($HTTP_RAW_POST_DATA);
?>
結果:
input1=abc
input2=def
input2=ghi
ありません伸びる方法どのような値のinput1
とinput2
変数をguish。前述した他の二つのエンコーディングを使用する場合には、そのような問題
abc\r\ninput2=def
、INPUT2 = ghi
、ならびにabc
、INPUT2 = def\r\ninput2=ghi
することはできません。
GETとPOSTの違い:GETで
enctype="text/plain"
と書くと、ブラウザで無視されるだけで、Wiresharkを使ってリクエストパケットを盗聴することができます)、text/plain
またはapplication/x-www-form-urlencoded
、buとして送信するかどうかを選択できます第2のものは曖昧でない唯一の解です。[HTML5](http://dev.w3.org/html5/spec/association-of-controls-and-forms.html#attr-fs-enctype)によると、 'text/plain'は3番目に有効なcontent- enctypeを入力します。フォーマットはhttp://dev.w3.org/html5/spec/association-of-controls-and-forms.html#plain-text-form-dataで説明されています。 – Alohci
素敵なテーブルはこちら[こちら](http://www.w3schools.com/tags/att_form_enctype.asp)(私はすでに投稿しました) –
真実、私はw3schoolsの言葉は信じられません。 – Alohci
HTML5では、と提出されたフォームデータをtext/plain
としてフォーマットする方法を定義しています。そのセクションの下部にある
、それは言う:text/plainの形式を使用して
ペイロードが読める 人間であることを意図しています。 形式はあいまいです(たとえば、値の末尾にある改行文字から改行文字を区切る方法がありません)ため、コンピュータで確実に解釈することはできません。
PHPはそれを解釈しようとせず、生のままでしか利用できないということは無理ではありません。私には、それは正しいアプローチのようです。
私はあなたがファイルアップロードを行っている場合を除き、あなたは、ENCTYPEを定義する必要はありませんかなり確信している、それは次のようになります。 にenctype = "multipart/form-データ" [リンク](のhttp:/ /www.w3.org/TR/html4/interact/forms.html#adef-enctype) – rwyland
w3schools([link](http://www.w3schools.com/tags/att_form_enctype.asp))によると、 'application/x-www-form-urlencoded'がデフォルトです。 –
私の質問は、なぜmethod = "post"とenctype = "text/plain"が一緒に動作しないのですか?私のHTMLコードは満足していないし、私が使うべきものも問題ではない!!!!!!!!!!!!!!!!!!! – Narek