Maison >développement back-end >tutoriel php >Pourquoi l'utilisation de `enctype='text/plain'` avec les requêtes POST provoque-t-elle des problèmes en PHP ?

Pourquoi l'utilisation de `enctype='text/plain'` avec les requêtes POST provoque-t-elle des problèmes en PHP ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-24 06:09:22604parcourir

Why Does Using `enctype=

"method="post" enctype="text/plain": Un problème de compatibilité

Lors de l'utilisation de l'élément de formulaire avec les deux méthodes = "post" et enctype="text/plain", les utilisateurs peuvent rencontrer des problèmes de transmission de données vers le fichier PHP spécifié. En effet, PHP ne prend pas en charge la gestion de l'encodage texte/plain pour le POST. data.

Pourquoi l'encodage texte/plain est-il problématique ?

Les valeurs valides pour enctype incluent application/x-www-form-urlencoded et multipart/form-data. le premier est la valeur par défaut pour les requêtes POST, tandis que le second est utilisé lors du téléchargement de fichiers.

Lorsque l'encodage texte/plain est utilisé avec POST, PHP stocke le brut données du formulaire dans la variable $HTTP_RAW_POST_DATA au lieu de remplir le tableau $_POST. Cela peut entraîner des incohérences et des ambiguïtés dans l'accès aux valeurs du formulaire.

Exemple

Considérez le formulaire suivant. :

<form method="post" enctype="text/plain" action="proc.php">
  <textarea name="input1">abc
input2=def</textarea>
  <input name="input2" value="ghi" />
  <input type="submit">
</form>

Dans le PHP correspondant file:

print($HTTP_RAW_POST_DATA);

Résultat:

input1=abc
input2=def
input2=ghi

Comme vu ci-dessus, il est impossible de différencier les valeurs de input1 et input2, car elles peuvent être soit input1 =abcrninput2=def, input2=ghi ou input1=abc, input2=defrninput2=ghi.

Contrairement aux requêtes POST, les requêtes GET encodent toujours en URL la chaîne de requête, même si enctype="text/plain" est spécifié. En effet, les variables font partie de l'URL elle-même.

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!

Déclaration:
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