[Revisado]
La respuesta es, debido a que PHP no se ocupa de él (y que no es un error):
https://bugs.php.net/bug.php?id=33741
Valid values for enctype in <form> tag are:
application/x-www-form-urlencoded
multipart/form-data
El primero es el valor por defecto , el segundo que necesita solo cuando carga archivos.
@Alohci proporcionado explicación de por qué PHP no llena $_POST
matriz, pero almacenar el valor dentro de una variable $HTTP_RAW_POST_DATA
.
ejemplo de lo que puede ir mal 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);
?>
Resultado:
input1=abc
input2=def
input2=ghi
n manera de distinguir guish cuál es el valor de input1
y input2
variables. Puede ser
- INPUT1 =
abc\r\ninput2=def
, INPUT2 = ghi
, así como
- INPUT1 =
abc
, INPUT2 = def\r\ninput2=ghi
No tal problema cuando se usan los otros dos codificaciones mencionados antes.
La diferencia entre GET y POST:
- en GET, las variables son parte del URL y están presentes en la URL como cadena de consulta, por lo tanto, deben ser codificados en URL (y son, incluso si escribe
enctype="text/plain"
- el navegador lo ignora, puede probarlo usando Wireshark para olfatear los paquetes de solicitud),
- al enviar la POST, las variables no son parte de la URL, pero se envían como el último encabezado en HTTP solicitud (POSTDATA), y puede elegir si desea enviarlos como
text/plain
o application/x-www-form-urlencoded
, bu El segundo es la única solución no ambigua.
Estoy bastante seguro de que no es necesario definir enctype, a menos que usted está haciendo una carga de archivos, entonces debería ser: enctype = "multipart/form-data" [link] (http://www.w3.org/TR/html4/interact/forms.html#adef-enctype) – rwyland
De acuerdo con w3schools ([link] (http://www.w3schools.com/tags/att_form_enctype.asp)), 'aplicación/x-www-form-urlencoded' es el predeterminado. –
Mi pregunta es por qué method = "post" y enctype = "text/plain" no funcionan juntos? Mi código HTML no mide y lo que debería usar no importa demasiado !!!!!!!!!!!!!!!!!!! – Narek