Blog Alphorm Logo de blog informatique spécialisé en technologie et solutions IT
  • Développement
  • 3D et Animation
  • Cybersécurité
  • Infrastructure
  • Virtualisation
  • Réseaux
  • Bureautique
  • BDD
En cours de lecture : Maîtriser les formulaires avec PHP 8
Agrandisseur de policeAa
Blog AlphormBlog Alphorm
  • Développement
  • 3D et Animation
  • Cybersécurité
  • Infrastructure
  • Virtualisation
  • Réseaux
  • Bureautique
  • BDD
Search
  • Développement
  • 3D et Animation
  • Cybersécurité
  • Infrastructure
  • Virtualisation
  • Réseaux
  • Bureautique
  • BDD
Suivez-nous
© Alphorm 2024 - Tous droits réservés
Développement

Maîtriser les formulaires avec PHP 8

L'Équipe Alphorm Par L'Équipe Alphorm 18 janvier 2025
Partager
20e lecture en min
Partager
Cet article fait partie du guide Tutoriel Complet pour Apprendre PHP 8 à Travers des Projets Pratiques, partie 12 sur 28.

La gestion des formulaires en PHP est souvent source d’erreurs et de vulnérabilités.

Sans une maîtrise des superglobales $_GET et $_POST, les développeurs risquent des failles de sécurité et une mauvaise manipulation des données, compliquant le débogage.

Découvrez comment sécuriser et optimiser vos formulaires en PHP 8 avec les bonnes pratiques d’utilisation de $_GET, $_POST, isset(), et empty(), ainsi que la gestion des menus déroulants et boutons radio pour des applications robustes.

Table de matière
IntroductionRevoir les bases de la gestion des formulaires en PHPUtiliser les fonctions PHP pour contrôler les formulairesFonctionnalité et utilisation de isset() en PHPVérification des champs avec empty() après soumission du formulaireCode complet pour la gestion des formulairesGestion d'un menu déroulant en PHPMaintenir l’affichage de l’option sélectionnée dans un menu déroulantGestion des boutons radio en PHPMaintenir l’affichage du bouton radio sélectionnéGestion des cases à cocher en PHPExemple d’utilisation des boucles pour gérer les cases à cocherConclusion

Introduction

La gestion des formulaires en PHP 8 est essentielle pour créer des applications web interactives et dynamiques. Elle vous permet de collecter, traiter et valider les données saisies par les utilisateurs. Dans cet article, vous allez revoir les concepts de base en utilisant les méthodes GET et POST, examiner les fonctions PHP  de contrôle comme isset() et empty(), et aborder des éléments interactifs tels que les menus déroulants, les boutons radio et les cases à cocher. Chaque section sera illustrée par des exemples de code pratiques et leurs explications détaillées.

Revoir les bases de la gestion des formulaires en PHP

Les superglobales PHP $_GET et $_POST sont utilisées pour collecter des données de formulaire.

Code PHP gérant les cases à cocher sans boucle dans formulaires PHP 8

Superglobale $_GET

Définition de la superglobale $_GET

La superglobale $_GET en PHP est un tableau associatif qui contient les données envoyées au script courant via les paramètres d’URL (méthode GET)

Exemple de code pour $_GET

Le code suivant présente un formulaire HTML simple utilisant la méthode GET pour envoyer des données au serveur. En PHP, la superglobale $_GET vous permet de récupérer ces données directement depuis l’URL. Cet exemple illustre comment collecter des entrées utilisateur via un formulaire et afficher les données soumises en utilisant $_GET.

				
					<!DOCTYPE html>
<html lang="en">
<head>
  <title>Formulaire</title>
<style id="wpr-lazyload-bg-container"></style><style id="wpr-lazyload-bg-exclusion"></style>
<noscript>
<style id="wpr-lazyload-bg-nostyle">.rll-youtube-player .play{--wpr-bg-37e47872-c5b1-49ec-9d30-af21c5727a32: url('https://blog.alphorm.com/wp-content/plugins/wp-rocket/assets/img/youtube.png');}</style>
</noscript>
<script type="application/javascript">const rocket_pairs = [{"selector":".rll-youtube-player .play","style":".rll-youtube-player .play{--wpr-bg-37e47872-c5b1-49ec-9d30-af21c5727a32: url('https:\/\/blog.alphorm.com\/wp-content\/plugins\/wp-rocket\/assets\/img\/youtube.png');}","hash":"37e47872-c5b1-49ec-9d30-af21c5727a32","url":"https:\/\/blog.alphorm.com\/wp-content\/plugins\/wp-rocket\/assets\/img\/youtube.png"}]; const rocket_excluded_pairs = [];</script></head>
<body>
    <form action="" method="get">
        <input type="text" name="pseudo" placeholder="Votre pseudo"/>
        <input type="text" name="prenom" placeholder="Votre prénom"/>
        <input type="submit" value="Valider"/>
    </form>
    <pre>
    <?php
      print_r($_GET)
    ?>
    </pre>
<script>class RocketElementorAnimation{constructor(){this.deviceMode=document.createElement("span"),this.deviceMode.id="elementor-device-mode-wpr",this.deviceMode.setAttribute("class","elementor-screen-only"),document.body.appendChild(this.deviceMode)}_detectAnimations(){let t=getComputedStyle(this.deviceMode,":after").content.replace(/"/g,"");this.animationSettingKeys=this._listAnimationSettingsKeys(t),document.querySelectorAll(".elementor-invisible[data-settings]").forEach(t=>{const e=t.getBoundingClientRect();if(e.bottom>=0&&e.top<=window.innerHeight)try{this._animateElement(t)}catch(t){}})}_animateElement(t){const e=JSON.parse(t.dataset.settings),i=e._animation_delay||e.animation_delay||0,n=e[this.animationSettingKeys.find(t=>e[t])];if("none"===n)return void t.classList.remove("elementor-invisible");t.classList.remove(n),this.currentAnimation&&t.classList.remove(this.currentAnimation),this.currentAnimation=n;let s=setTimeout(()=>{t.classList.remove("elementor-invisible"),t.classList.add("animated",n),this._removeAnimationSettings(t,e)},i);window.addEventListener("rocket-startLoading",function(){clearTimeout(s)})}_listAnimationSettingsKeys(t="mobile"){const e=[""];switch(t){case"mobile":e.unshift("_mobile");case"tablet":e.unshift("_tablet");case"desktop":e.unshift("_desktop")}const i=[];return["animation","_animation"].forEach(t=>{e.forEach(e=>{i.push(t+e)})}),i}_removeAnimationSettings(t,e){this._listAnimationSettingsKeys().forEach(t=>delete e[t]),t.dataset.settings=JSON.stringify(e)}static run(){const t=new RocketElementorAnimation;requestAnimationFrame(t._detectAnimations.bind(t))}}document.addEventListener("DOMContentLoaded",RocketElementorAnimation.run);</script></body>
</html>
				
			

Explication et intérêt de $_GET en PHP

  • Formulaire HTML avec Méthode GET : Le formulaire HTML utilise la méthode GET pour envoyer les données. Lorsque l’utilisateur soumet le formulaire PHP 8, les valeurs des champs de texte sont ajoutées à l’URL sous forme de paramètres de requête.
  • Superglobale $_GET : En PHP, $_GET est une superglobale qui contient un tableau associatif des paires clé/valeur envoyées au script via les paramètres d’URL. Dans cet exemple, $_GET contiendra les valeurs des champs pseudo et prénom.
  • Affichage des Données Soumises : La fonction print_r($_GET) est utilisée pour afficher les données soumises dans le formulaire sous forme de tableau. Cela permet de voir clairement quelles informations ont été envoyées au script.
  • Facilité de Débogage : Utiliser $_GET est particulièrement utile pour le débogage, car il permet de voir immédiatement les valeurs des paramètres directement dans l’URL, facilitant ainsi la compréhension des données transmises.

Utilisation pratique de $_GET

Lorsque l’utilisateur remplit le formulaire php 8 et clique sur « Valider », les données sont ajoutées à l’URL comme ceci : http://localhost/formation_php.php?pseudo=toto&prenom=paul

Le script PHP affichera alors le tableau suivant :

Code PHP montrant l'utilisation de la superglobale $_GET formulaires PHP 8

Superglobale $_POST

  •  Le formulaire HTML utilise la méthode GET pour envoyer les données. Lorsque l’utilisateur soumet le formulaire PHP 8, les valeurs des champs de texte sont ajoutées à l’URL sous forme de paramètres de requête.
  • Superglobale $_GET : En PHP, $_GET est une superglobale qui contient un tableau associatif des paires clé/valeur envoyées au script via les paramètres d’URL. Dans cet exemple, $_GET contiendra les valeurs des champs pseudo et prénom.
  • Affichage des Données Soumises : La fonction print_r($_GET) est utilisée pour afficher les données soumises dans le formulaire sous forme de tableau. Cela permet de voir clairement quelles informations ont été envoyées au script.
  • Facilité de Débogage : Utiliser $_GET est particulièrement utile pour le débogage, car il permet de voir immédiatement les valeurs des paramètres directement dans l’URL, facilitant ainsi la compréhension des données transmises.

Définition de la superglobale $_POST

Exemple d'utilisation

Lorsque l’utilisateur remplit le formulaire PHP 8 et clique sur « Valider », les données sont envoyés au script PHP et affichées sous forme de tableau :

Code PHP montrant l'utilisation de la superglobale $_GET formulaires PHP 8

Explication et intérêt de $_POST en PHP

Définition

La superglobale $_POST en PHP 8 est un tableau associatif qui contient les données envoyées au script courant via la méthode POST. Cette méthode est souvent utilisée pour envoyer des données de formulaire de manière sécurisée.

Utilisation pratique de $_POST

Le code ci-dessous présente un formulaire HTML simple utilisant la méthode POST pour envoyer des données au serveur. En PHP, la superglobale $_POST vous permet de récupérer ces données, facilitant ainsi la collecte et le traitement des informations utilisateur soumises via le formulaire.

				
					<!DOCTYPE html>
<html lang="en">
<head>
  <title>Formulaire</title>
<style id="wpr-lazyload-bg-container"></style><style id="wpr-lazyload-bg-exclusion"></style>
<noscript>
<style id="wpr-lazyload-bg-nostyle">.rll-youtube-player .play{--wpr-bg-37e47872-c5b1-49ec-9d30-af21c5727a32: url('https://blog.alphorm.com/wp-content/plugins/wp-rocket/assets/img/youtube.png');}</style>
</noscript>
<script type="application/javascript">const rocket_pairs = [{"selector":".rll-youtube-player .play","style":".rll-youtube-player .play{--wpr-bg-37e47872-c5b1-49ec-9d30-af21c5727a32: url('https:\/\/blog.alphorm.com\/wp-content\/plugins\/wp-rocket\/assets\/img\/youtube.png');}","hash":"37e47872-c5b1-49ec-9d30-af21c5727a32","url":"https:\/\/blog.alphorm.com\/wp-content\/plugins\/wp-rocket\/assets\/img\/youtube.png"}]; const rocket_excluded_pairs = [];</script></head>
<body>
    <form action="" method="post">
        <input type="text" name="pseudo" placeholder="Votre pseudo"/>
        <input type="text" name="prenom" placeholder="Votre prénom"/>
        <input type="submit" value="Valider"/>
    </form>
    <pre>
    <?php
      print_r($_POST)
    ?>
    </pre>
</body>
</html>
				
			

Quand utiliser la méthode GET ?

  • Les informations envoyées depuis un formulaire PHP 8 avec la méthode GET sont visibles par tous(tous les noms et valeurs des variables sont affichés dans l’URL). GET a également des limites sur la quantité d’informations à envoyer. La limitation est d’environ 2000 caractères. Cependant, comme les variables sont affichées dans l’URL, il est possible de mettre la page en favoris. Cela peut être utile dans certains cas.
  • GET peut être utilisé pour envoyer des données non sensibles.
  • Remarque :GET ne doit JAMAIS être utilisé pour envoyer des mots de passe ou d’autres informations sensibles !

Quand utiliser la méthode POST ?

  • Les informations envoyées à partir d’un formulaire PHP 8 avec la méthode POST sont invisibles pour les autres(tous les noms/valeurs sont intégrés dans le corps de la requête HTTP) et n’ont aucune limite quant à la quantité d’informations à envoyer.
  • De plus, POST prend en charge des fonctionnalités avancées telles que la prise en charge de l’entrée binaire en plusieurs parties lors du téléchargement de fichiers sur le serveur.
  • Cependant, comme les variables ne sont pas affichées dans l’URL, il n’est pas possible de mettre la page en favoris.

Différences entre $_GET et $_POST

Critère
$_GET
$_POST
Méthode de Transmission
Paramètres d’URL
Corps de la requête HTTP
Visibilité des Données
Visible dans l’URL
Non visible dans l’URL
Taille des Données
Limitée par la longueur de l’URL (environ 2048 caractères)
Non limitée par la longueur de l’URL
Utilisation Typique
Récupération de données (ex : recherche, filtres)
Soumission de formulaires, envoi de données sensibles
Sécurité
Moins sécurisé car les données sont visibles dans l’URL
Plus sécurisé car les données ne sont pas exposées dans l’URL
Mémorisation du Navigateur
Peut être mise en cache par le navigateur
Non mise en cache par le navigateur
Impact sur l’URL
Modifie l’URL en ajoutant des paramètres
Ne modifie pas l’URL
Facilité de Débogage
Facile à déboguer car les paramètres sont visibles dans l’URL
Moins facile à déboguer car les paramètres ne sont pas visibles

Formation PHP 8 : Gestion Des Données Utilisateur

Découvrir cette formation
image de PHP version 4 avec code en arrière-plan pour le développement web

Utiliser les fonctions PHP pour contrôler les formulaires

Gestion des champs de formulaire avec isset()

Problème : Lorsqu’un formulaire PHP 8 est soumis, les champs de formulaire peuvent ne pas être définis si vous ne les remplissez pas. Cela peut provoquer des erreurs lors de la tentative d’accès à ces champs.

Explication : Dans le code, la fonction isset() est utilisée pour vérifier si le bouton de soumission nommé valider a été cliqué. Cela garantit que le script n’essaiera pas d’accéder aux données du formulaire avant que vous ne l’ayez soumis.

Code PHP avec boucles pour gérer les cases à cocher formulaires PHP 8
				
					if(isset($_POST['valider'])) {
      // Le formulaire a été soumis
  }
				
			

Fonctionnalité et utilisation de isset() en PHP

Rôle : La fonction isset() vérifie si une variable est définie et n’est pas nulle. Elle renvoie true si la variable existe et n’est pas nulle, sinon elle renvoie false.

Utilisation dans le code : isset() est utilisée pour vérifier la soumission du formulaire PHP 8 et l’existence des champs avant de les traiter.

				
					if(isset($_POST['valider'])) {
      // Vérifier si les champs pseudo et prenom sont définis
      if(isset($_POST['pseudo']) && isset($_POST['prenom'])) {
          // Les champs sont définis
      }
}
				
			

Vérification des champs avec empty() après soumission du formulaire

Utilisation de empty() :

Après avoir vérifié la soumission du formulaire avec isset(), la fonction empty() est utilisée pour s’assurer que les champs obligatoires ne sont pas vides.

Message si aucune case n'est cochée formulaires PHP 8
				
					if(isset($_POST['valider'])) {
      if(!empty($_POST['pseudo']) && !empty($_POST['prenom'])) {
          // Les champs ne sont pas vides, traitement des données
      } else {
          // Afficher un message d'erreur
      }
  }
				
			

Importance de empty() dans la validation des champs

Rôle : La fonction empty() vérifie si une variable est vide. Elle renvoie true si la variable est vide (valeur nulle, 0, «  », ou non définie), sinon elle renvoie false.

Importance : Utiliser empty() est crucial pour la validation des formulaires PHP 8 car cela empêche la soumission de données incomplètes ou incorrectes.

				
					if(empty($_POST['pseudo']) || empty($_POST['prenom'])) {
      // Afficher un message d'erreur si l'un des champs est vide
  }
				
			

Résumé des fonctions isset() et empty() pour la gestion des formulaires

Fonction
Utilisation
Description
isset()
Vérifier l’existence des variables
Utilisée pour déterminer si une variable est définie et n’est pas null. Elle permet de vérifier que les données soumises existent avant de les traiter.
empty()
Assurer que les champs obligatoires ne sont pas vides
Utilisée pour vérifier si une variable est vide. Elle permet de s’assurer que les champs obligatoires du formulaire contiennent des valeurs avant de les traiter.

Code complet pour la gestion des formulaires

				
					<!DOCTYPE html>
<html lang="en">
<head>
  <title>Formulaire</title>
<style id="wpr-lazyload-bg-container"></style><style id="wpr-lazyload-bg-exclusion"></style>
<noscript>
<style id="wpr-lazyload-bg-nostyle">.rll-youtube-player .play{--wpr-bg-37e47872-c5b1-49ec-9d30-af21c5727a32: url('https://blog.alphorm.com/wp-content/plugins/wp-rocket/assets/img/youtube.png');}</style>
</noscript>
<script type="application/javascript">const rocket_pairs = [{"selector":".rll-youtube-player .play","style":".rll-youtube-player .play{--wpr-bg-37e47872-c5b1-49ec-9d30-af21c5727a32: url('https:\/\/blog.alphorm.com\/wp-content\/plugins\/wp-rocket\/assets\/img\/youtube.png');}","hash":"37e47872-c5b1-49ec-9d30-af21c5727a32","url":"https:\/\/blog.alphorm.com\/wp-content\/plugins\/wp-rocket\/assets\/img\/youtube.png"}]; const rocket_excluded_pairs = [];</script></head>
<body>
    <form action="" method="post">
        <input type="text" name="pseudo" placeholder="Votre pseudo"/>
        <input type="text" name="prenom" placeholder="Votre prénom"/>
        <input type="submit" name="valider" value="Valider"/>
    </form>
    <pre>
    <?php
    if(isset($_POST[valider])){
      if(!empty($_POST['pseudo']) && !empty($_POST['prenom'])){
        echo "ton pseudo est :".$_POST['pseudo']."<br>";
        echo "ton prenom est :".$_POST['prenom'];
      }
    }
    ?>
    </pre>
</body>
</html>
				
			

Exemple d'affichage de code en PHP

Illustration des superglobales $_GET et $_POST

Gestion d'un menu déroulant en PHP

Comment récupérer le choix sélectionné dans le menu déroulant ?

Pour récupérer le choix sélectionné dans un menu déroulant en PHP, vous devez d’abord créer un formulaire HTML avec un élément <select> contenant plusieurs <option>. Lorsqu’un utilisateur sélectionne une option et soumet le formulaire PHP 8, la valeur de l’option sélectionnée est envoyée au script PHP. Vous pouvez ensuite accéder à cette valeur en utilisant la superglobale $_POST.

Exemple de code pour la gestion des menus déroulants

Ce code permet de gérer un menu déroulant en PHP et d’afficher le choix de l’utilisateur de manière dynamique après la soumission du formulaire.

				
					<html lang="en">
<head>
  <title>Formulaire</title>
<style id="wpr-lazyload-bg-container"></style><style id="wpr-lazyload-bg-exclusion"></style>
<noscript>
<style id="wpr-lazyload-bg-nostyle">.rll-youtube-player .play{--wpr-bg-37e47872-c5b1-49ec-9d30-af21c5727a32: url('https://blog.alphorm.com/wp-content/plugins/wp-rocket/assets/img/youtube.png');}</style>
</noscript>
<script type="application/javascript">const rocket_pairs = [{"selector":".rll-youtube-player .play","style":".rll-youtube-player .play{--wpr-bg-37e47872-c5b1-49ec-9d30-af21c5727a32: url('https:\/\/blog.alphorm.com\/wp-content\/plugins\/wp-rocket\/assets\/img\/youtube.png');}","hash":"37e47872-c5b1-49ec-9d30-af21c5727a32","url":"https:\/\/blog.alphorm.com\/wp-content\/plugins\/wp-rocket\/assets\/img\/youtube.png"}]; const rocket_excluded_pairs = [];</script></head>
<body>
    <form action="" method="post">
      <select name="pizza">
        <option value="0">--Choix de la pizza --</option>
        <option value="calzone">Calzone</option>
        <option value="royale">Royale</option>
        <option value="reine">Reine</option>
        <input type="submit" name="valider" value="Valider"/>
      </select>
    </form>
    <pre>
    <?php
    if(isset($_POST['valider'])){
      if($_POST['pizza'] != ){
          echo 'Choix de la pizza : '.$_POST['pizza'];
      }else{
        echo 'Choisissez une pizza';
      }
    }
    ?>
    </pre>
</body>
</html>
				
			

Exemple d'affichage du code en PHP

Le formulaire HTML contient un élément <select> avec le nom pizza. Il comporte quatre options : une option par défaut avec la valeur 0, et trois options de pizza avec les valeurs calzone, royale, et reine.

Lorsque vous sélectionnez une option dans le menu déroulant et soumettez le formulaire en cliquant sur le bouton « Valider« , le formulaire est soumis en utilisant la méthode POST, et les données sont envoyées au même script.

En PHP, vous vérifiez si le formulaire a été soumis en utilisant isset($_POST['valider']). Si le formulaire est soumis, vous vérifiez si la valeur sélectionnée dans le menu déroulant n’est pas 0 (l’option par défaut). Si une pizza a été sélectionnée (valeur différente de 0), vous affichez la pizza sélectionnée. Sinon, vous demandez à l’utilisateur de choisir une pizza.

Exemple d’affichage de code

Diagramme expliquant isset() en PHP formulaires PHP 8
Diagramme expliquant empty() en formulaires PHP 8

Maintenir l’affichage de l’option sélectionnée dans un menu déroulant

Lorsque vous sélectionne une option dans un menu déroulant et soumet le formulaire PHP 8, il est souvent utile de conserver cette sélection après le rechargement de la page. Cela améliore votre expérience en évitant que vous ayez à re-sélectionner l’option à chaque soumission.

Exemple de code pour maintenir la sélection dans un menu déroulant

				
					<!DOCTYPE html>
<html lang="en">
<head>
  <title>Formulaire</title>
<style id="wpr-lazyload-bg-container"></style><style id="wpr-lazyload-bg-exclusion"></style>
<noscript>
<style id="wpr-lazyload-bg-nostyle">.rll-youtube-player .play{--wpr-bg-37e47872-c5b1-49ec-9d30-af21c5727a32: url('https://blog.alphorm.com/wp-content/plugins/wp-rocket/assets/img/youtube.png');}</style>
</noscript>
<script type="application/javascript">const rocket_pairs = [{"selector":".rll-youtube-player .play","style":".rll-youtube-player .play{--wpr-bg-37e47872-c5b1-49ec-9d30-af21c5727a32: url('https:\/\/blog.alphorm.com\/wp-content\/plugins\/wp-rocket\/assets\/img\/youtube.png');}","hash":"37e47872-c5b1-49ec-9d30-af21c5727a32","url":"https:\/\/blog.alphorm.com\/wp-content\/plugins\/wp-rocket\/assets\/img\/youtube.png"}]; const rocket_excluded_pairs = [];</script></head>
<body>
    <form action="" method="post">
    <?php
      if(isset($_POST['valider'])){
        $pizza=$_POST['pizza'];
      }else{
        $pizza='';
      }
    ?>
      <select name="pizza">
        <option value="0">--Choix de la pizza --</option>
        <option value="calzone" <?php if($pizza=='calzone'){echo 'selected';}?>>Calzone</option>
        <option value="royale" <?php if($pizza=='royale'){echo 'selected';}?>>Royale</option>
        <option value="reine" <?php if($pizza=='reine'){echo 'selected';}?>>Reine</option>
        <input type="submit" name="valider" value="Valider"/>
      </select>
    </form>
    <pre>
    <?php
    if(isset($_POST['valider'])){
      if($_POST['pizza'] != 0){
          echo 'Choix de la pizza : '.$_POST['pizza'];
      }else{
        echo 'Choisissez une pizza';
      }
    }
    ?>
    </pre>
</body>
</html>
				
			

Voici une brève explication de ce code :

  • Formulaire HTML : Le formulaire utilise la méthode post et contient un élément <select> pour le choix de la pizza.
  • Stockage de la sélection : Après la soumission du formulaire, la sélection de l’utilisateur ($_POST['pizza']) est stockée dans une variable PHP $pizza.
  • Maintien de la sélection : À l’intérieur de chaque option du menu déroulant, nous utilisons une condition PHP pour vérifier si la valeur de l’option correspond à $pizza. Si c’est le cas, nous ajoutons l’attribut selected à cette option pour la marquer comme sélectionnée.
  • Affichage de la sélection : Si le formulaire est soumis, nous affichons la pizza sélectionnée par l’utilisateur ou demandons à l’utilisateur de faire un choix si aucune pizza n’a été sélectionnée.

Exemple d'affichage de code en PHP

Code PHP maintenant le bouton radio sélectionné

Gestion des boutons radio en PHP

Les boutons radio permettent à l’utilisateur de sélectionner une seule option parmi plusieurs. Dans les formulaires HTML, il est souvent nécessaire de récupérer et traiter cette sélection en PHP.

Comment récupérer la sélection des boutons radio ?

Lorsqu’un formulaire PHP 8 avec des boutons radio est soumis, la valeur de l’option sélectionnée est envoyée au serveur. En PHP, on peut récupérer cette valeur en accédant à l’élément correspondant dans le tableau $_POST.

Exemple de code pour la gestion des boutons radio

				
					<!DOCTYPE html>
<html lang="en">
<head>
  <title>Formulaire</title>
<style id="wpr-lazyload-bg-container"></style><style id="wpr-lazyload-bg-exclusion"></style>
<noscript>
<style id="wpr-lazyload-bg-nostyle">.rll-youtube-player .play{--wpr-bg-37e47872-c5b1-49ec-9d30-af21c5727a32: url('https://blog.alphorm.com/wp-content/plugins/wp-rocket/assets/img/youtube.png');}</style>
</noscript>
<script type="application/javascript">const rocket_pairs = [{"selector":".rll-youtube-player .play","style":".rll-youtube-player .play{--wpr-bg-37e47872-c5b1-49ec-9d30-af21c5727a32: url('https:\/\/blog.alphorm.com\/wp-content\/plugins\/wp-rocket\/assets\/img\/youtube.png');}","hash":"37e47872-c5b1-49ec-9d30-af21c5727a32","url":"https:\/\/blog.alphorm.com\/wp-content\/plugins\/wp-rocket\/assets\/img\/youtube.png"}]; const rocket_excluded_pairs = [];</script></head>
<body>
    <form action="" method="post">
      <p>choisissez une pizza</p>
      <input type="radio" name="pizza" value="calzone" >Calzone
      <input type="radio" name="pizza" value="reine">Reine
      <input type="radio" name="pizza" value="royale" >Royale
      <br><br>
      <input type="submit" name="valider" value="Valider">
    </form>
    <br><br>
    <hr><br>
    <?php
    if(isset($_POST['valider'])){
      if(isset($_POST['pizza'])){
        echo 'Pizza choisie '. $_POST['pizza'];
      }else{
        'vous n\'avez pas choisi de pizza';
      }
    }
    ?>
    </pre>
</body>
</html>
				
			

Explication de code:

  • Formulaire HTML : Le formulaire utilise la méthode post et contient plusieurs boutons radio pour le choix de la pizza.
  • Récupération de la sélection : Après la soumission du formulaire, on vérifie si le bouton de soumission (valider) a été cliqué en utilisant isset($_POST['valider']). Ensuite, on vérifie si un bouton radio a été sélectionné en utilisant isset($_POST['pizza']). Si une pizza a été sélectionnée, sa valeur est affichée.
Exemple de code utilisant isset() et empty() pour valider formulaires PHP 8

Maintenir l’affichage du bouton radio sélectionné

Après la soumission d’un formulaire PHP 8, il est utile de conserver l’option sélectionnée par l’utilisateur pour améliorer l’expérience utilisateur. En PHP, cela peut être réalisé en utilisant des conditions pour ajouter l’attribut checked aux boutons radio.

Exemple de code pour maintenir le bouton radio sélectionné

				
					<!DOCTYPE html>
<html lang="en">
<head>
  <title>Formulaire</title>
<style id="wpr-lazyload-bg-container"></style><style id="wpr-lazyload-bg-exclusion"></style>
<noscript>
<style id="wpr-lazyload-bg-nostyle">.rll-youtube-player .play{--wpr-bg-37e47872-c5b1-49ec-9d30-af21c5727a32: url('https://blog.alphorm.com/wp-content/plugins/wp-rocket/assets/img/youtube.png');}</style>
</noscript>
<script type="application/javascript">const rocket_pairs = [{"selector":".rll-youtube-player .play","style":".rll-youtube-player .play{--wpr-bg-37e47872-c5b1-49ec-9d30-af21c5727a32: url('https:\/\/blog.alphorm.com\/wp-content\/plugins\/wp-rocket\/assets\/img\/youtube.png');}","hash":"37e47872-c5b1-49ec-9d30-af21c5727a32","url":"https:\/\/blog.alphorm.com\/wp-content\/plugins\/wp-rocket\/assets\/img\/youtube.png"}]; const rocket_excluded_pairs = [];</script></head>
<body>
<?php
if(isset($_POST['pizza'])){
    $pizza=$_POST['pizza'];
}else{
    $pizza='';
}
?>
    <form action="" method="post">
      <p>choisissez une pizza</p>
      <input type="radio" name="pizza" value="calzone" <?php if($pizza=='calzone'){echo 'checked';}?>>Calzone
      <input type="radio" name="pizza" value="reine" <?php if($pizza=='reine'){echo 'checked';}?>>Reine
      <input type="radio" name="pizza" value="royale" <?php if($pizza=='royale'){echo 'checked';}?>>Royale
      <br><br>
      <input type="submit" name="valider" value="Valider">
    </form>
    <br><br>
    <hr><br>
    <?php
    if(isset($_POST['valider'])){
      if(isset($_POST['pizza'])){
        echo 'Pizza choisie '. $_POST['pizza'];
      }else{
        'vous n\'avez pas choisi de pizza';
      }
    }
    ?>
    </pre>
</body>
</html>
				
			

Voici une brève explication de ce code :

  • Stockage de la sélection : Si une pizza a été choisie (lorsque le formulaire est soumis), la valeur est stockée dans la variable $pizza.
  • Maintien de la sélection : Pour chaque bouton radio, une condition vérifie si la valeur du bouton correspond à $pizza. Si c’est le cas, l’attribut checked est ajouté pour maintenir la sélection.
  • Affichage de la sélection : Comme dans l’exemple précédent, si le formulaire PHP 8 est soumis et qu’une pizza a été choisie, la sélection est affichée. Sinon, un message demande à l’utilisateur de faire un choix.

Exemple d'affichage de code en PHP

Alors, ici dans l’affichage, lorsque l’utilisateur choisit une pizza et clique sur le bouton « Valider », il conserve le bouton sélectionné et l’affiche en bas.

Message affiché si aucune option n'est sélectionnée

PHP 8

Maîtrise Complète de PHP 8 : De l'Initiation à l'Expertise en Architecture MVC

Découvrir cette formation
Guide complet PHP 8 pour développement web et meilleures pratiques IT

Gestion des cases à cocher en PHP

Les cases à cocher permettent aux utilisateurs de sélectionner plusieurs options dans un formulaire. En PHP, nous devons gérer correctement ces sélections pour traiter et afficher les choix multiples de l’utilisateur.

Exemple simple sans boucle pour gérer les cases à cocher

Exemple de code pour les cases à cocher

				
					<!DOCTYPE html>
<html lang="en">
<head>
  <title>Formulaire</title>
<style id="wpr-lazyload-bg-container"></style><style id="wpr-lazyload-bg-exclusion"></style>
<noscript>
<style id="wpr-lazyload-bg-nostyle">.rll-youtube-player .play{--wpr-bg-37e47872-c5b1-49ec-9d30-af21c5727a32: url('https://blog.alphorm.com/wp-content/plugins/wp-rocket/assets/img/youtube.png');}</style>
</noscript>
<script type="application/javascript">const rocket_pairs = [{"selector":".rll-youtube-player .play","style":".rll-youtube-player .play{--wpr-bg-37e47872-c5b1-49ec-9d30-af21c5727a32: url('https:\/\/blog.alphorm.com\/wp-content\/plugins\/wp-rocket\/assets\/img\/youtube.png');}","hash":"37e47872-c5b1-49ec-9d30-af21c5727a32","url":"https:\/\/blog.alphorm.com\/wp-content\/plugins\/wp-rocket\/assets\/img\/youtube.png"}]; const rocket_excluded_pairs = [];</script></head>
<body>
    <form action="" method="post">
      <p>Quelles sont vos couleurs préférées ?</p>
      <input type="checkbox" name="couleur[]" value="bleu">Bleu
      <input type="checkbox" name="couleur[]" value="rouge">Rouge
      <input type="checkbox" name="couleur[]" value="jaune">Jaune
      <input type="checkbox" name="couleur[]" value="vert">Vert
      <input type="checkbox" name="couleur[]" value="noir">Noir
      <input type="checkbox" name="couleur[]" value="blanc">Blanc
      <p>
      <input type="submit" name="valider" value="Valider">
      </p>
    </form>
    <?php
    if(isset($_POST['valider'])){
      $couleurs=$_POST['couleur'];
      foreach($couleurs as $couleur){
        echo $couleur.'<br>';
      }
    }
  ?>
    </pre>
</body>
</html>
				
			

Voici une brève explication de ce code :

Formulaire HTML :

  • Chaque case à cocher a un attribut name="couleur[]", ce qui indique que toutes les valeurs sélectionnées seront stockées dans un tableau couleur dans $_POST.
  • L’utilisateur peut sélectionner plusieurs cases à cocher avant de soumettre le formulaire.

Traitement PHP :

  • Vérification de la soumission du formulaire : if(isset($_POST['valider'])) vérifie si le formulaire a été soumis.
  • Récupération des sélections : if(isset($_POST['couleur'])) vérifie si au moins une case à cocher a été sélectionnée. Si oui, les valeurs sont stockées dans le tableau $couleurs.
  • Affichage des sélections : La boucle foreach parcourt le tableau $couleurs et affiche chaque couleur sélectionnée. Si aucune couleur n’est sélectionnée, un message est affiché pour indiquer cela.

Exemple d'affichage de code en PHP

Code PHP maintenant l'option sélectionnée dans un menu formulaires PHP 8

Exemple d’utilisation des boucles pour gérer les cases à cocher

L’utilisation de boucles en PHP permet de générer dynamiquement des éléments de formulaire, ce qui simplifie la gestion de listes d’options potentiellement longues et rend le code plus flexible et maintenable.

Exemple de code avec des boucles pour les cases à cocher

				
					<html lang="en">
<head>
  <title>Formulaire</title>
<style id="wpr-lazyload-bg-container"></style><style id="wpr-lazyload-bg-exclusion"></style>
<noscript>
<style id="wpr-lazyload-bg-nostyle">.rll-youtube-player .play{--wpr-bg-37e47872-c5b1-49ec-9d30-af21c5727a32: url('https://blog.alphorm.com/wp-content/plugins/wp-rocket/assets/img/youtube.png');}</style>
</noscript>
<script type="application/javascript">const rocket_pairs = [{"selector":".rll-youtube-player .play","style":".rll-youtube-player .play{--wpr-bg-37e47872-c5b1-49ec-9d30-af21c5727a32: url('https:\/\/blog.alphorm.com\/wp-content\/plugins\/wp-rocket\/assets\/img\/youtube.png');}","hash":"37e47872-c5b1-49ec-9d30-af21c5727a32","url":"https:\/\/blog.alphorm.com\/wp-content\/plugins\/wp-rocket\/assets\/img\/youtube.png"}]; const rocket_excluded_pairs = [];</script></head>
<body>
    <form action="" method="post">
      <p>Quelles sont vos couleurs préférées ?</p>
      <?php
        $choix=['bleu','rouge','jaune','vert','noir','blanc'];
        foreach($choix as $choose){
          echo '<input type="checkbox" name="couleur[]" value="'.$choose.'">'.$choose.'';
        }
      ?>
      <p>
      <input type="submit" name="valider" value="Valider">
      </p>
    </form>
   <?php
    if(isset($_POST['valider'])){
      if(!empty($_POST['couleur'])){
        $couleurs=$_POST['couleur'];
        foreach($couleurs as $couleur){
          echo $couleur.'<br>';
        }
      }else{
        echo 'Merci de choisir une couleur ! ';
      }
    }
    ?>
    </pre>
</body>
</html>
				
			

Intérêt de la boucle :

  • La boucle foreach permet de créer les cases à cocher de manière dynamique, ce qui rend le code plus maintenable et flexible.
  • En cas d’ajout ou de suppression d’options, il suffit de modifier le tableau $choix sans toucher à la logique de génération HTML.
  • Cela simplifie également la gestion des formulaires PHP 8 lorsque les options proviennent de bases de données ou d’autres sources dynamiques.

Exemple d'affichage de code en PHP

Code PHP pour gérer la sélection des boutons radios
Diagramme expliquant empty() en PHP

Formez-vous gratuitement avec Alphorm !

Maîtrisez les compétences clés en IT grâce à nos formations gratuites et accélérez votre carrière dès aujourd'hui. Découvrez des cours variés pour tous les niveaux !

Démarrer gratuitement
illustration processus de paiement en ligne avec étapes claires et convivialité

Conclusion

La gestion des formulaires en PHP 8 est une compétence indispensable pour tout développeur souhaitant créer des applications web robustes. En comprenant l’usage des superglobales $_GET et $_POST, ainsi que l’importance des fonctions isset() et empty(), vous serez en mesure de valider et de traiter les données des formulaires de manière efficace et sécurisée. En appliquant ces techniques, vous améliorez non seulement la sécurité de vos applications, mais aussi l’expérience utilisateur globale. Et par la suite nous allons traiter la gestion des fichiers PHP 8.

Cet article fait partie du guide Tutoriel Complet pour Apprendre PHP 8 à Travers des Projets Pratiques, partie 12 sur 28.
< Maîtriser les Fonctions de PHP 8Réaliser un projet avec PHP 8 >

ÉTIQUETÉ : PHP8
Facebook
Twitter
LinkedIn
Email
WhatsApp
Par L'Équipe Alphorm
Démocratiser la Connaissance Informatique pour Tous !
Suivre :
L'Équipe Alphorm, c'est la démocratisation de la connaissance informatique. Passionnés et dévoués, nous sommes là pour vous guider vers le succès en rendant la technologie accessible à tous. Rejoignez notre aventure d'apprentissage et de partage. Avec nous, le savoir IT devient une ressource inspirante et ouverte à tous dans un monde numérique en constante évolution.

Derniers Articles

  • Techniques pour gérer les fichiers texte en C#
  • Créer et lire un fichier CSV avec C#
  • JSON : Comprendre et Utiliser Efficacement
  • Créer une Base SQLite dans C#
  • Lecture des données SQLite simplifiée
Blog Alphorm
  • Développement
  • 3D et Animation
  • Cybersécurité
  • Infrastructure
  • Virtualisation
  • Réseaux
  • Bureautique
  • BDD
En cours de lecture : Maîtriser les formulaires avec PHP 8

© Alphorm - Tous droits réservés