Maison > développement back-end > tutoriel php > Pourquoi `enctype='text/plain'` est-il incompatible avec la méthode POST dans les formulaires HTML ?

Pourquoi `enctype='text/plain'` est-il incompatible avec la méthode POST dans les formulaires HTML ?

Barbara Streisand
Libérer: 2024-12-16 04:37:11
original
877 Les gens l'ont consulté

Why is `enctype=

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 :

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

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>
Copier après la connexion

Dans file2.php :

<?php
print($HTTP_RAW_POST_DATA);
?>
Copier après la connexion

Le résultat attendu :

input1=abc
input2=def
input2=ghi
Copier après la connexion

Cependant, avec l'encodage texte/plain, il y a aucun moyen de distinguer les valeurs de input1 et input2 Le résultat pourrait. be:

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

La différence entre GET et POST est-ce :

  • Les variables GET apparaissent dans l'URL sous forme de requête chaînes et doivent être codés en URL, même avec enctype="text/plain."
  • Les variables POST sont transmises dans l'en-tête final de la requête HTTP (POSTDATA), permettant le codage en tant que texte/plain ou application/x -www-form-urlencoded. Toutefois, cette dernière est préférable pour éviter toute ambiguïté.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal