formations / php / php-traitement-des-formulaires

Débutant
cgoupil1970 | 16-12-2023

PHP - Traitement des formulaires

Le traitement des formulaires en PHP est une opération qui permet de récupérer les données saisies par l'utilisateur dans un formulaire HTML et de les traiter dans un script PHP.

Les superglobales

Pour traiter les données d'un formulaire envoyé lors de sa validation par une requête HTTP (navigation, changement de page), on fait appel à des superglobales.

$_GET et $_POST sont deux superglobales en PHP qui permettent de récupérer des données transmises par l'utilisateur dans une requête HTTP.

Caractéristiques communes

  • Ce sont des tableaux associatifs.
  • Elles sont générées à la volée par PHP avant même que la première ligne du script ne soit exécutée.
  • Elles sont disponibles dans tous les contextes du script.

Différences

  • $_GET est utilisée pour les données transmises via l'URL.
  • $_POST est utilisée pour les données transmises via un formulaire.

Nous allons maintenant traiter les formulaires de création et de modification d'un animal que nous avons mis en place dans ce tutoriel.


Le formulaire de création

Si nous reprenons le code du formulaire présent dans le fichier "create.php", on peut noter que la balise "form" est dotée d'un attribut html "method" à la valeur POST, ce qui signifie que les variables correspondant aux différents champs du formulaire peuvent être récupérées à l'aide de la superglobale $_POST.

Ci-dessous le code du formulaire :

<form action="" method="post">
    <div class="form-group">
        <label for="nom">Nom de l'animal</label>
        <input type="text" name="nom" id="nom" class="form-control">
    </div>
    <div class="form-group mt-3">
        <label for="">Type d'animal</label>
        <select name="type" class="form-control">
        <!-- Les options dynamiques viendront ici -->
        <?php 
        // Connexion à la base de données
        require_once("connexion.php");
        // Requête SQL pour récupérer tous les types d'animaux
        $sql = "SELECT * FROM animal_type";
        // Exécution de la requête SQL
        $result = mysqli_query($mysqli, $sql);
        // On boucle sur le résultat de la requête SQL pour afficher chaque type d'animal dans une balise <option>
        while ($row = mysqli_fetch_assoc($result)) {
            echo "<option value='" . $row["id_type_animal"] . "'>" . $row["nom_type"] . "</option>";
        }
        ?>
        </select>
    </div>
    <button type="submit" class="btn btn-dark mt-4">Ajouter</button>
</form>

On peut noter que la balise du formulaire contient un attribut html "action" qui est vide. On pourrait renseigner cet attribut afin de rediriger vers un script php spécifique qui prendrait en charge le traiement du formulaire et l'ajout en base de données.

Ici nous allons le laisser vide, de sorte que la page va se recharger et que nous ferons le traitement des données s'il y a lieu de le faire.

Nous allons récupérer le script php que nous avions laissé en bas de page et le mettre au début et nous allons conditionner ce script à l'aide d'une condition if qui va vérifier si la supergloable $_POST est définie. En effet la superglobale $_POST ne sera définie que lorsque le formulaire est validé dans la mesure ou ce dernier est porteur de l'attribut html "post".

De la sorte cette page pourra, soit afficher le formulaire, soit traiter les données pour les insérer dans la table de la base de données et rediriger vers la page d'index qui liste les animaux. 

Nous pouvons placer le script ou nous le souhaitons, idéalement avant le code html du formulaire. Dans notre exemple nous allons le placer juste après la balise h1 en ouvrant bien sûr une zone de script php, comme l'illustre le code ci-dessous :

<?php
    if(!empty($_POST)){
        echo "Le formulaire a été envoyé !";
    }
?>

Tutos du jour

Les premiers pas en Php

Les premiers pas en Php

Les premiers pas avec PHP, intégrer du php dans de l'html utiliser les fonctions de bases comme echo, include, etc.

Voir le tuto

MySql - Les fonctions SQL

Les fonctions SQL sont des instructions qui permettent de traiter les données d'une table.

Voir le tuto
Votre inscription à la newsletter a bien été prise en compte. Une erreur est survenue lors de l'inscription à la newsletter. Votre désinscription à la newsletter a bien été prise en compte. Une erreur est survenue lors de la désinscription à la newsletter.

Inscription à la newsletter

Désinscription de la newsletter