Oui, oui, tout le monde a appris quelque chose à un moment donné. La seule chose qui distingue les gens à cet égard est que pour certains, les enseignements sont faciles, tandis que pour d'autres, ils ne peuvent pas comprendre l'essence du problème pendant plusieurs mois. Aujourd'hui, nous allons parler des requêtes POST et GET en HTML\PHP.
Les requêtes POST et GET elles-mêmes (ci-après simplement les requêtes) sont depuis longtemps ancrées dans toutes les ressources Internet. Si une alternative à ces technologies apparaît un jour, ce ne sera probablement pas de sitôt, et ce ne sera probablement pas nécessaire. Parce que nos demandes remplissent pleinement la tâche d'échange de données entre les pages Internet.
Examinons d'abord la requête GET. Créons un fichier index.php avec HTML standard code, et placez également un formulaire dessus, que ce soit un formulaire de commande de produit.
Faisons attention à la balise ici formulaire. Il a deux paramètres action Et méthode. Le premier est responsable de l'adresse de la page vers laquelle nous transférerons nos données, le second est responsable de la méthode par laquelle ces données seront transférées. À l’intérieur de cette balise, nous décrivons l’ensemble de nos données que nous souhaitons transmettre. Les données doivent être nommées (paramètre nom). Le type d'entrée est également requis soumettre, qui est un bouton qui, lorsqu'on clique dessus, envoie des données.
Sauvons notre fichier et ouvrons-le dans le navigateur.
Le chemin de notre page dans le navigateur est « …/index.php ». Sur la page elle-même, nous voyons deux champs de saisie et un bouton. Entrons quelque chose dans nos champs et cliquons sur le bouton « Commander ». Notre page a été mise à jour. Regardons son adresse : ".../index.php?orderName=Test&count=12". (J'ai entré le mot « Test » dans le premier champ et « 12 » dans le second). Comme on peut le constater, l'adresse de la page a un peu changé. Le fait est que la transmission des paramètres de la requête GET s'effectue en les attribuant à la ligne d'adresse de la page. Les paramètres sont séparés de l'adresse principale par le caractère « ? » et des différents paramètres par le caractère « & ». La structure des paramètres est la suivante : nom_paramètre=valeur. Le nom du paramètre correspondra à la valeur de l'attribut name dans le champ de saisie.
Modifions un peu le code de la page :
Cliquez maintenant à nouveau sur le bouton « Commander ». Comme nous pouvons le constater, la page a été mise à jour, mais nos champs restent remplis. Cela s'est produit parce que nous avons spécifié une valeur par défaut pour nos champs. De plus, ces valeurs sont le paramètre GET reçu. Comme nous le voyons dans le code PHP, les paramètres GET sont un tableau avec un index de chaîne égal au nom du paramètre. Si nous jouons maintenant avec l'adresse du site, modifions les valeurs des paramètres et appuyons sur le bouton « Entrée », nous remarquerons à nouveau une image de la page mettant à jour et remplissant notre formulaire.
Il est évident que l'envoi de données secrètes ou de service dans une requête GET est incorrect (et dangereux). Il est préférable de l'utiliser pour transmettre, par exemple, l'identifiant d'une actualité à extraire de la base de données ou le nom de la page à afficher.
Autre chose Requête POST. Cela fonctionne de la même manière, mais n'enregistre pas les paramètres dans la barre d'adresse. Changeons notre formulaire :
Comme vous pouvez le constater, peu de choses ont changé cependant ! Ouvrons notre page, saisissons quelque chose dans les champs et cliquons sur le bouton « Commander ». Cependant, tout a fonctionné de la même manière (cependant), comme nous le voyons dans la ligne de requête, il y a l'adresse « .../index.php » sans aucun paramètre. Ainsi, nous avons en quelque sorte « caché » nos données à regards indiscrets. Bien sûr, le concept a été caché, de manière assez conditionnelle, puisque ces données peuvent toujours être interceptées, mais c'est une autre histoire. Ajoutons les paramètres « .../index.php?orderName=Trololo&count=100 » à notre adresse et appuyons sur « Entrée ». Comme nous pouvons le voir, la page s'est chargée, mais même malgré le passage des paramètres, les champs se sont avérés vides. Cela suggère que malgré la grande similitude, ces types de requêtes ne se chevauchent en aucune façon, et si cela est nécessaire, il vaut la peine d'écrire un gestionnaire pour chaque type de requête séparément.
Je pense que ça suffit. Les bases de la question, je pense, ont été décrites en détail.
Et un peu plus… N'oubliez pas de vérifier les paramètres transmis. Si vous savez avec certitude que le paramètre doit être un nombre, arrêtez toutes les tentatives de transmission d'une valeur non numérique, etc....
Cet article a pour but d'expliquer les principes de transmission de données sur Internet en utilisant deux méthodes principales : GET et POST. Je l'ai écrit en complément des instructions du générateur d'horaires de travail pour ceux qui ne seront probablement pas intéressés par les détails ☺.
Allez à l'adresse suivante (c'est pour une explication visuelle) : http://calendarin.net/calendar.php?year=2016 Faites attention à la barre d'adresse du navigateur : calendrierin.net/calendar.php ?année=2016 Le fichier principal est nommé suivi d'un point d'interrogation (?) et d'un paramètre "année" avec la valeur "2016". Ainsi, tout ce qui suit le point d’interrogation est une requête GET. C'est simple. Pour transmettre plusieurs paramètres, ils doivent être séparés par une esperluette (&). Exemple : calendrierin.net/calendar.php ?année=2016&display=jours de travail et jours de congé
Le fichier principal est toujours nommé, suivi d'un point d'interrogation (?), puis d'un paramètre « année » avec la valeur « 2016 », puis d'une esperluette (&), puis d'un paramètre « affichage » avec la valeur « jours-travail- et-jours" -off".
Les paramètres GET peuvent être modifiés directement dans la barre d'adresse du navigateur. Par exemple, en changeant la valeur « 2016 » en « 2017 » et en appuyant sur la touche, vous accéderez au calendrier 2017.
Il s'agit d'un transfert de données de manière cachée(l'adresse de la page ne change pas) ; c'est-à-dire que vous ne pouvez voir que ce qui a été transféré à l'aide d'un programme (script). Par exemple, dans l'outil suivant pour compter les caractères dans le texte, les données originales sont transmises à l'aide de la méthode POST : http://usefulonlinetools.com/free/character-counter.php
Si vous avez des questions, des commentaires et mon email est à votre service.
En plus de la méthode GET, dont nous avons parlé dans l'article précédent, il existe une autre méthode pour envoyer une requête via le protocole HTTP : la méthode POST. La méthode POST est également très souvent utilisée en pratique.
Si, pour contacter le serveur via la méthode GET, il suffisait de saisir une requête dans l'URL, alors dans la méthode POST, tout fonctionne selon un principe différent.
Pour exécuter ce type de demande, nous devons cliquer sur le bouton avec l'attribut type="submit", qui se trouve sur la page Web. Veuillez noter que ce bouton se trouve dans l'élément
Si l'utilisateur saisit du texte dans le champ de texte et clique sur le bouton « Soumettre », la variable de texte sera envoyée au serveur avec la valeur du contenu saisi par l'utilisateur.
Requêtes POST et GET en mots simples
Cette variable sera envoyée en utilisant la méthode POST.
Si vous écrivez ceci sous la forme :