Utiliser un formulaire

L'un des points forts de PHP est sa capacité à gérer les formulaires. Le concept de base qui est important à comprendre est que tous les champs d'un formulaire seront automatiquement disponibles dans le script PHP d'action. Consulter le chapitre du manuel concernant les variables depuis des sources externes à PHP pour plus d'informations et d'exemples sur la façon d'utiliser les formulaires. Voici un exemple de formulaire HTML :

Exemple #1 Un simple formulaire HTML

<form action="action.php" method="post">
   <label for="nom">Votre nom :</label>
   <input name="nom" id="nom" type="text">

   <label for="age">Votre âge :</label>
   <input name="age" id="age" type="number">

   <button type="submit">Valider</button>
</form>

Il n'y a rien de particulier dans ce formulaire. Il est en HTML pur, sans aucune configuration particulière. Lorsque le visiteur remplit le formulaire et clique sur le bouton Valider, le fichier action.php est appelé. Dans ce fichier, il est possible d'écrire le script suivant :

Exemple #2 Afficher des données issues d'un formulaire

Bonjour, <?php echo htmlspecialchars($_POST['nom']); ?>.
Tu as <?php echo (int) $_POST['age']; ?> ans.

Voici le résultat possible, selon les valeurs saisies :

Bonjour Jean.
Tu as 29 ans.

Mis à part les parties htmlspecialchars() et (int), ce script ne fait que des choses évidentes. htmlspecialchars() s'assure que tous les caractères spéciaux HTML sont proprement encodés afin d'éviter des injections de balises HTML et de Javascript dans les pages. Pour l'âge, vu que c'est un entier, il est possible de le convertir en un entier. PHP peut également le faire automatiquement en utilisant l'extension filter. Les variables $_POST['nom'] et $_POST['age'] sont automatiquement créées par PHP. Un peu plus tôt dans ce tutoriel, nous avons utilisé la variable $_SERVER, une superglobale. Maintenant, nous avons introduit une autre superglobale $_POST qui contient toutes les données envoyées par la méthode POST. Il est à noter que dans notre formulaire, nous avons choisi la méthode POST. Si nous avions utilisé la méthode GET alors notre formulaire aurait placé ces informations dans la variable $_GET, une autre superglobale. Il est également possible d'utiliser la variable $_REQUEST, pour ne pas se soucier de la méthode utilisée. Elle contient un mélange des données de GET, POST et COOKIE.

add a note

User Contributed Notes 1 note

up
54
sethg at ropine dot com
22 years ago
According to the HTTP specification, you should use the POST method when you're using the form to change the state of something on the server end. For example, if a page has a form to allow users to add their own comments, like this page here, the form should use POST. If you click "Reload" or "Refresh" on a page that you reached through a POST, it's almost always an error -- you shouldn't be posting the same comment twice -- which is why these pages aren't bookmarked or cached.

You should use the GET method when your form is, well, getting something off the server and not actually changing anything.  For example, the form for a search engine should use GET, since searching a Web site should not be changing anything that the client might care about, and bookmarking or caching the results of a search-engine query is just as useful as bookmarking or caching a static HTML page.
To Top