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 ?
"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!