[rivisto]
La risposta è, perché PHP non gestisce esso (e non è un bug):
https://bugs.php.net/bug.php?id=33741
Valid values for enctype in <form> tag are:
application/x-www-form-urlencoded
multipart/form-data
Il primo è il default , il secondo è necessario solo quando carichi i file.
@Alohci disponibile spiegazione perché PHP non popolato $_POST
matrice, ma memorizzare il valore in una variabile $HTTP_RAW_POST_DATA
.
esempio di cosa può andare storto con 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);
?>
Risultato:
input1=abc
input2=def
input2=ghi
No modo di distinare Indicare qual è il valore delle variabili input1
e input2
. Può essere
- input1 =
abc\r\ninput2=def
, input2 = ghi
, così come
- input1 =
abc
, input2 = def\r\ninput2=ghi
nessun problema del genere quando si utilizzano le altre due codifiche menzionati prima.
La differenza tra GET e POST:
- in GET, le variabili sono parte di URL e sono presenti in URL come stringa di query, quindi devono essere URL-codificati (e sono anche se scrivi
enctype="text/plain"
- viene semplicemente ignorato dal browser, puoi testarlo usando Wireshark per annusare i pacchetti di richiesta),
- quando invii POST, le variabili non fanno parte dell'URL, ma vengono inviate come ultima intestazione in HTTP richiesta (POSTDATA) e puoi scegliere se inviarli come
text/plain
o application/x-www-form-urlencoded
, bu la seconda è l'unica soluzione non ambigua.
fonte
2011-10-02 18:52:10
Sono abbastanza sicuro che non è necessario definire enctype, a meno che non si sta facendo un caricamento di file, allora dovrebbe essere: enctype = "multipart/form-data" [link] (http://www.w3.org/TR/html4/interact/forms.html#adef-enctype) – rwyland
Secondo w3schools ([link] (http://www.w3schools.com/tags/att_form_enctype.asp)), l'applicazione/x-www-form-urlencoded' è l'impostazione predefinita. –
La mia domanda è perché method = "post" e enctype = "text/plain" non funzionano insieme? Il mio codice HTML non funziona e quello che dovrei usare non importa troppo !!!!!!!!!!!!!!!!!!! – Narek