Quelle est la différence entre php://input et $_post ?
Quelle est la différence entre php://input et $_post ? L’article suivant vous le présentera. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. J'espère qu'il sera utile à tout le monde.
Quelques phrases extraites du manuel :
Quand requête HTTP POST Quand contenu -Type est application/x-www-form-urlencoded ou multipart/form-data, les variables seront passées dans le script actuel sous la forme d'un tableau associatif.
php://input est un flux en lecture seule qui donne accès aux données brutes demandées. Lorsque enctype="multipart/form-data" est utilisé, php://input n'est pas valide.
Vérifiez :
post.html
<!DOCTYPE html> <html> <head> <title></title> </head> <body> <form action="getpost.php" method="post"> <input type="text" name="name" value="saisai"> <input type="submit" name="submit" value="submit"> </form> </body> </html>
getpost.php
<?php echo "----------input--------<br />"; var_dump(file_get_contents('php://input', 'r')); echo "----------post---------<br />"; var_dump($_POST); ?>
1. "application/x-www-form-urlencoded"
Corps de la requête :
Content-Type: application/x-www-form-urlencoded Content-Length: 25name=saisai&submit=submit
Sortie :
----------input-------- string 'name=saisai&submit=submit' (length=25) ----------post--------- array (size=2) 'name' => string 'saisai' (length=6) 'submit' => string 'submit' (length=6)
Résumé : Lorsque enctype="application/x- www -form-urlencoded", les données (name=saisai&submit=submit) dans le corps de la requête sont converties en un tableau associatif et placées dans $_POST, tandis que php://input obtient les données originales (données brutes).
2. Lorsque enctype="multipart/form-data"
2.1 Formulaire :
<form action="getpost.php" method="post" enctype="multipart/form-data"> <input type="text" name="name" value="saisai"> <input type="submit" name="submit" value="submit"> </form>
Sujet de la demande :
Content-Type: multipart/form-data; boundary=---------------------------22554656810024 Content-Length: 249 -----------------------------22554656810024 Content-Disposition: form-data; name="name" saisai -----------------------------22554656810024 Content-Disposition: form-data; name="submit" submit -----------------------------22554656810024--
Sortie :
----------input-------- string '' (length=0) ----------post--------- array (size=2) 'name' => string 'saisai' (length=6) 'submit' => string 'submit' (length=6)
Résumé : Lorsque enctype="multipart/form-data" et qu'il n'y a pas de contrôle de fichier de téléchargement, $_POST peut imprimer les données normalement, mais php:// n'est pas valide.
Formulaire 2.2 (ajouter un téléchargement de fichier) :
<form action="getpost.php" method="post" enctype="multipart/form-data"> <input type="text" name="name" value="saisai"> <input type="submit" name="submit" value="submit"> </form>
Sujet de la demande :
Content-Type: multipart/form-data; boundary=---------------------------272321281228527 Content-Length: 68386 -----------------------------272321281228527 Content-Disposition: form-data; name="name" saisai -----------------------------272321281228527 Content-Disposition: form-data; name="filename"; filename="dog.png" Content-Type: image/png 一堆乱码 -----------------------------272321281228527 Content-Disposition: form-data; name="submit" submit -----------------------------272321281228527--
Sortie :
----------input-------- string '' (length=0) ----------post--------- array (size=2) 'name' => string 'saisai' (length=6) 'submit' => string 'submit' (length=6)
Résumé : In enctype="multipart/form -data" et il existe un contrôle de fichier de téléchargement, $_POST peut imprimer les données entrantes, mais exclut tout contenu téléchargé. php:// n'est pas valide.
3. enctype="text/plain"
Formulaire :
<form action="getpost.php" method="post" enctype="text/plain"> <input type="text" name="name" value="saisai"> <input type="submit" name="submit" value="submit"> </form>
Corps de la requête :
Content-Type: text/plain Content-Length: 28 name=saisai submit=submit
Sortie :
----------input-------- string 'name=saisai submit=submit ' (length=28) ----------post--------- array (size=0) empty
Résumé : lorsque enctype="text/plain", il n'y a pas de contenu dans $_POST, et il est stocké dans des paires clé-valeur dans php://input.
Résumé :
Lorsque le Content-Type de la requête HTTP POST est application/x-www-form-urlencoded ou multipart/form -data : php://input contient les données originales similaires à a=1&b=2. $_POST contient un tableau associatif et ne télécharge pas le contenu du contrôle.
php://input est un flux en lecture seule qui donne accès aux données brutes demandées. Lorsque enctype="multipart/form-data" est utilisé, php://input n'est pas valide.
$_POST ne peut pas obtenir les données de publication lorsque Content-Type = "text/plain", mais php://input le peut.
Pour plus de connaissances connexes, veuillez faire attention au Site Web PHP chinois ! !
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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

PHP 8.4 apporte plusieurs nouvelles fonctionnalités, améliorations de sécurité et de performances avec une bonne quantité de dépréciations et de suppressions de fonctionnalités. Ce guide explique comment installer PHP 8.4 ou mettre à niveau vers PHP 8.4 sur Ubuntu, Debian ou leurs dérivés. Bien qu'il soit possible de compiler PHP à partir des sources, son installation à partir d'un référentiel APT comme expliqué ci-dessous est souvent plus rapide et plus sécurisée car ces référentiels fourniront les dernières corrections de bogues et mises à jour de sécurité à l'avenir.

Pour travailler avec la date et l'heure dans cakephp4, nous allons utiliser la classe FrozenTime disponible.

CakePHP est un framework open source pour PHP. Il vise à faciliter grandement le développement, le déploiement et la maintenance d'applications. CakePHP est basé sur une architecture de type MVC à la fois puissante et facile à appréhender. Modèles, vues et contrôleurs gu

Pour travailler sur le téléchargement de fichiers, nous allons utiliser l'assistant de formulaire. Voici un exemple de téléchargement de fichiers.

Le validateur peut être créé en ajoutant les deux lignes suivantes dans le contrôleur.

Visual Studio Code, également connu sous le nom de VS Code, est un éditeur de code source gratuit – ou environnement de développement intégré (IDE) – disponible pour tous les principaux systèmes d'exploitation. Avec une large collection d'extensions pour de nombreux langages de programmation, VS Code peut être c

CakePHP est un framework MVC open source. Cela facilite grandement le développement, le déploiement et la maintenance des applications. CakePHP dispose d'un certain nombre de bibliothèques pour réduire la surcharge des tâches les plus courantes.

Ce tutoriel montre comment traiter efficacement les documents XML à l'aide de PHP. XML (Language de balisage extensible) est un langage de balisage basé sur le texte polyvalent conçu à la fois pour la lisibilité humaine et l'analyse de la machine. Il est couramment utilisé pour le stockage de données et
