Maison >développement back-end >tutoriel php >Pourquoi `enctype='text/plain'` est-il incompatible avec la méthode POST dans les formulaires HTML ?
Pourquoi "method="post" enctype="text/plain"" n'est-il pas compatible ?
Lors de l'utilisation de la méthode d'encodage de formulaire HTML "post" avec "enctype="text/plain", "les données du formulaire ne parviennent pas à être transmises au script PHP. Quelle est la raison de ce problème ? Pourquoi l'encodage texte/plain est-il incompatible avec post alors qu'il est autorisé avec get ?
Explication
PHP ne prend pas en charge "enctype="text/plain"" pour " method="post" ; ce n'est pas un bug de programme.
Valeurs approuvées pour "enctype" dans un formulaire sont :
La première option est la valeur par défaut, tandis que la seconde est essentiel pour les téléchargements de fichiers.
PHP ne remplit pas le tableau $_POST lorsque "enctype="text/plain" est utilisé à la place, il stocke la valeur dans $HTTP_RAW_POST_DATA.
Problèmes potentiels avec l'encodage texte/plain
Considérez les scénario suivant :
Dans 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>
Dans file2.php :
<?php print($HTTP_RAW_POST_DATA); ?>
Le résultat attendu :
input1=abc input2=def input2=ghi
Cependant, avec l'encodage texte/plain, il y a aucun moyen de distinguer les valeurs de input1 et input2 Le résultat pourrait. be:
La différence entre GET et POST est-ce :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!