Les variables $_GET et $_POST en PHP sont utilisées pour récupérer des informations à partir d'un formulaire, telles que la saisie de l'utilisateur.
Une chose importante à noter est que lors du traitement des formulaires HTML, PHP peut automatiquement rendre les éléments de formulaire de la page HTML disponibles pour les scripts PHP.
L'exemple ci-dessous contient un formulaire HTML avec deux champs de saisie et un bouton de soumission.
<html><head><metacharset="utf-8"><title>Réseau de codes sources (downcodes.com)</title></head><body> <formaction="welcome.php"method="post" > Nom : <inputtype="text"name="fname">Âge : <inputtype="text"name="age"><inputtype="submit"value="submit"></form> </body>< /html>
Lorsque l'utilisateur remplit le formulaire ci-dessus et clique sur le bouton Soumettre, les données du formulaire seront envoyées vers un fichier PHP nommé "welcome.php" :
Bienvenue<?phpecho$_POST["fname"] ?>!<br>Votre âge est de <?phpecho$_POST["age"] ?> ans.
Nous expliquerons les variables $_GET et $_POST en PHP dans le chapitre suivant.
Dans l'exemple suivant, nous définissons trois options pour le menu déroulant. Le formulaire utilise la méthode GET pour obtenir les données. Si la valeur de l'attribut d'action est vide, cela signifie qu'elle est soumise au script actuel. le menu déroulant via l'attribut name de select :
<?php$q= isset($_GET['q'])? htmlspecialchars($_GET['q']): '';if($q){ if($q=='CODERCTO'){ echo' Réseau de code source<br>http://www.downcodes.com'; }elseif($q=='GOOGLE'){ echo'Recherche Google<br>http://www.google.com'; }elseif($q=='TAOBAO'){ echo'Taobao<br>http://www.taobao.com' }}else{?><formaction=""method="get"> <selectname=" q"> <optionvalue="">Sélectionnez un site :</option> <optionvalue="CODERCTO">codercto</option> <optionvalue="GOOGLE">Google</option> <optionvalue="TAOBAO">Taobao</option> </select> <inputtype="submit"value="submit"> </form><?php}?>
Si le menu déroulant est à sélection multiple (multiple="multiple"), nous pouvons l'obtenir en définissant select name="q[]" comme tableau et en le soumettant en utilisant POST. Le code est le suivant :
<?php$q= isset($_POST['q'])? $_POST['q']: '';if(is_array($q)){ $sites= array( 'CODERCTO'=> 'Code source Réseau : http://www.downcodes.com', 'GOOGLE'=> 'Recherche Google : http://www.google.com', 'TAOBAO'=> 'Taobao : http://www.taobao.com', ); foreach($qas$val){ //PHP_EOL est une constante, utilisée pour les sauts de ligne echo$sites[$val) }else{?><formaction]. =" "method="post"> <selectmultiple="multiple"name="q[]"> <optionvalue="">Sélectionnez un site :</option> <optionvalue="CODERCTO">codercto</option> <optionvalue="GOOGLE">Google</option> <optionvalue="TAOBAO">Taobao</option> </select> <inputtype="submit"value="Submit"> </form><?php}?>
Les valeurs de l'attribut name dans le formulaire de bouton radio PHP sont cohérentes, mais les valeurs de valeur sont différentes. Le code est le suivant :
<?php$q= isset($_GET['q'])? htmlspecialchars($_GET['q']): '';if($q){ if($q=='CODERCTO'){ echo' Réseau de code source<br>http://www.downcodes.com'; }elseif($q=='GOOGLE'){ echo'Recherche Google<br>http://www.google.com'; }elseif($q=='TAOBAO'){ echo'Taobao<br>http://www.taobao.com' }}else{?><formaction=""method="get"> <inputtype=" radio"name="q"value="CODERCTO"/>codercto <inputtype="radio"name="q"value="GOOGLE"/>Google <inputtype="radio"name="q"value="TAOBAO"/>Taobao <inputtype="submit"value="submit"></form><?php}?>
La case à cocher PHP peut sélectionner plusieurs valeurs :
<?php$q= isset($_POST['q'])? $_POST['q']: '';if(is_array($q)){ $sites= array( 'CODERCTO'=> 'Code source Réseau : http://www.downcodes.com', 'GOOGLE'=> 'Recherche Google : http://www.google.com', 'TAOBAO'=> 'Taobao : http://www.taobao.com', ); foreach($qas$val){ //PHP_EOL est une constante, utilisée pour les sauts de ligne echo$sites[$val) }else{?><formaction]. =" "method="post"> <inputtype="checkbox"name="q[]"value="CODERCTO">codercto<br> <inputtype="checkbox"name="q[]"value="GOOGLE">Google<br> <inputtype="checkbox"name="q[]"value="TAOBAO">Taobao<br> <inputtype=" submit"value="submit"></form><?php}?>
Nous devons valider les entrées de l'utilisateur autant que possible (via des scripts côté client). La validation du navigateur est plus rapide et réduit la pression sur le serveur.
Si l'entrée utilisateur doit être insérée dans une base de données, vous devez envisager d'utiliser la validation du serveur. Un bon moyen de valider un formulaire sur le serveur consiste à transmettre les données du formulaire à la page actuelle (la soumission asynchrone est préférable), plutôt que de passer à une autre page. De cette façon, les utilisateurs peuvent recevoir des messages d’erreur sur la même page de formulaire. Il sera plus facile pour les utilisateurs de trouver les erreurs.