Lorsqu’on crée un formulaire en PHP, l’objectif est d’afficher des champs dans lesquels l’utilisateur pourra entrer des informations. Ces informations seront ensuite envoyées au serveur (ou au script PHP) pour être utilisées dans le traitement des données.

Prenons l’exemple suivant pour comprendre :

<form method="post">
 <p>Votre nom : <input type="text" name="nom" /></p>
 <p>Votre âge : <input type="text" name="age" /></p>
 <p><input type="submit" value="OK"></p>
</form>

Ici, deux champs sont créés :

Lorsque l’utilisateur clique sur le bouton « OK », les données qu’il a saisies dans ces champs sont envoyées au serveur grâce à la méthode POST. En PHP, ces informations sont accessibles via la variable $_POST.

Pour afficher les valeurs saisies par l’utilisateur, on utilise ce code :

<? echo $_POST['nom']; ?>
<br><br>
<? echo $_POST['age']; ?>

Cela permet de :

  1. Afficher ce que l’utilisateur a entré dans les champs du formulaire après qu’il a cliqué sur « OK ».
  2. Utiliser ces informations pour effectuer un traitement (par exemple, les enregistrer dans une base de données, les afficher à l’écran, etc.).

Pourquoi cela ne marche pas en sandbox ?

Dans une sandbox comme onlinephp.io, il est impossible de traiter les données du formulaire de cette manière. Le navigateur ne communique pas avec le script PHP pour envoyer les données saisies. C’est pourquoi $_POST['nom'] et $_POST['age'] restent vides.

C’est quoi la « méthode POST » ?

Quand on parle de la « méthode POST », il s’agit d’une façon qu’a un formulaire HTML d’envoyer les informations qu’on a tapées dedans à un programme PHP. C’est comme si on glissait un papier dans une enveloppe et qu’on l’envoyait à quelqu’un pour qu’il lise ce qu’il y a écrit dessus.

Dans notre exemple de formulaire :

<form method="post">
 <p>Votre nom : <input type="text" name="nom" /></p>
 <p>Votre âge : <input type="text" name="age" /></p>
 <p><input type="submit" value="OK"></p>
</form>

Pourquoi la méthode POST ?

Imaginez que vous allez poster une lettre :

  1. Vous écrivez vos informations (nom et âge) sur un papier.
  2. Vous mettez ce papier dans une enveloppe (le formulaire).
  3. Vous choisissez un moyen de l’envoyer. Ici, la « méthode POST » est comme un facteur qui livre votre lettre directement au programme PHP.

Contrairement à une autre méthode (appelée « GET ») qui mettrait vos informations dans l’adresse du site, POST garde vos données « cachées » et plus sécurisées.


En PHP, comment récupérer ces informations ?

Quand le formulaire arrive chez PHP, il « ouvre l’enveloppe » et récupère les informations avec une variable spéciale appelée $_POST.

Par exemple :

On peut alors utiliser ces informations, par exemple, pour les afficher :

<? echo $_POST['nom']; ?>
<br><br>
<? echo $_POST['age']; ?>

Résumé simple

La méthode POST, c’est comme envoyer une lettre discrète contenant les informations écrites dans le formulaire. PHP, de son côté, est comme le facteur qui ouvre l’enveloppe et lit ce que vous avez écrit dedans.

Mais voila…

Dans une sandbox comme onlinephp.io, il est impossible de traiter les données du formulaire de cette manière. Le navigateur ne communique pas avec le script PHP pour envoyer les données saisies. C’est pourquoi $_POST['nom'] et $_POST['age'] restent vides. Et surtout cela provoque des messages d’erreurs !

Exemple :
https://onlinephp.io/c/b4b37

Il est donc temps de changer d’environnement de test…

Passons au chapitre suivant.