PHP Obtenir les données de formulaire via POST et GET

Dans de nombreuses applications, vous devrez récupérer des données saisies par l'utilisateur à partir d'un formulaire quelconque. Voici quelques méthodes pour le faire avec PHP.

Vous construisez un site Web permettant aux volontaires de s’inscrire avec un nom et un email pour un projet. Vous avez un formulaire simple dans lequel les utilisateurs entrent leur nom et leur adresse électronique. Que se passe-t-il quand ils cliquent sur soumettre sur ce formulaire? Rien ne se passe si vous utilisez du vieux HTML ordinaire. HTML ne peut rien faire en soi. Nous devons faire en sorte que cela fonctionne avec la puissance de PHP.

Récupérer les entrées d'un formulaire HTML est une compétence PHP élémentaire que tout le monde doit connaître, car une grande partie de toute application Web traite les formulaires d'une manière ou d'une autre (formulaires de connexion, formulaires d'inscription, formulaires de paramètres, formulaires de courrier électronique, etc.). .

$ _GET et $ _POST

Nous avons deux variables prédéfinies en PHP qui sont utilisées pour obtenir des données à partir d'un formulaire HTML. Ce sont $ _GET et $ _POST. Vous avez peut-être vu cela dans un formulaire HTML. La balise d'ouverture du formulaire aura un attribut appelé «get» ou «post». Notez l'exemple suivant:



Dans cet élément de formulaire HTML, nous lui attribuons un attribut de méthode de GET. Cela signifie que, pour récupérer les données de ce formulaire, nous devons utiliser la variable $ _GET en PHP. Par contre, si on utilise méthode = "post" il faudrait utiliser la variable $ _POST. Quelle est la différence? Comment obtenons-nous réellement les données?

$ _GET

Pour utiliser la méthode GET, nous allons configurer notre formulaire comme dans l'exemple ci-dessous avec le paramètre "get" en tant qu'attribut de méthode.



Prénom:
Nombre:


Notez que nous avons donné à chaque champ de formulaire un prénom attribut. Cela est nécessaire car nous devons pouvoir cibler chaque domaine. Nous donnons également un nom significatif à chaque champ de formulaire. Maintenant, que se passe-t-il lorsque l'utilisateur clique sur Soumettre?

L'attribut d'action spécifie un autre fichier sur votre serveur où les données de formulaire sont envoyées. Par conséquent, la partie PHP proprement dite n'est pas exécutée sur la même page que le formulaire (bien que cela puisse être). En règle générale, il est exécuté sur un autre fichier. Dans le cas ci-dessus, lorsque l'utilisateur clique sur Soumettre, les données du formulaire sont envoyées au fichier. process.php.

Sur le fichier process.php, nous aurions le code suivant:

  

Vous verrez que je crée deux nouvelles variables pour stocker les valeurs de mon formulaire ($ name et $ number). Nous définissons ces variables égales à ce qui se trouve dans le champ de formulaire et porte le nom «fName» et «nombre».


$ _GET ["fName"];
$ _GET ["nombre"];

Ainsi, nous prenons les valeurs de notre formulaire qui vient d'être complété à partir des champs spécifiés par notre variable $ _GET et nous les plaçons dans deux nouvelles variables. Ensuite, nous renvoyons les variables que nous avons créées à l'utilisateur pour afficher un message sur la page d'action.

Ma page de formulaire HTML:

Ensuite, lorsque je clique sur Soumettre, (notez l'URL):

C'est la différence entre GET et POST. Avec la méthode GET, nos variables sont ajoutées à l’URL de la page de traitement. Imaginez si vous obteniez un mot de passe d'un utilisateur et que celui-ci était affiché dans l'URL. C'est pourquoi l'utilisation de GET pour récupérer des informations utilisateur sensibles n'est généralement pas une bonne idée. C’est aussi pourquoi vous devriez consulter POST pour envoyer des informations sensibles (mots de passe, courriels, etc.).

$ _POST

Nous utilisons la variable POST exactement de la même manière que GET. La seule différence est que nos informations sont masquées à l'utilisateur et ne sont pas affichées dans l'URL. Nous n’aurons également aucune limite quant à la quantité de données que vous pouvez envoyer (pour les très gros formulaires).

Pour modifier votre méthode sous la forme en POST, utilisez ce qui suit:


Prénom:
Nombre:

Pour modifier les variables de la page process.php en POST, utilisez ce qui suit:

  

Avec $ post, lorsque vous cliquez sur submit, vos variables n’apparaissent pas dans l’URL: