Vous êtes sur la page 1sur 8

Le langage PHP (Dynamisme côte serveur)

Chapitre 3 : Fonctions et Traitement des formulaires

1. Les fonctions dans PHP

1.1. La notion de fonction


On appelle fonction un sous-programme qui permet d'effectuer un ensemble d'instructions par simple
appel de la fonction dans le corps du programme principal. Les fonctions permettent d'exécuter dans
plusieurs parties du programme une série d'instructions, cela permet une simplicité du code et donc une
taille de programme minimale.

1.2. Déclaration de fonction


PHP recèle de nombreuses fonctions intégrées permettant d'effectuer des actions courantes. Toutefois,
il est possible de définir des fonctions, dites fonctions utilisateurs afin de simplifier l'exécution de séries
d'instructions répétitives. PHP nécessite que l'on définisse une fonction avant que celle-ci puisse être
utilisée, car pour l'appeler dans le corps du programme il faut que l'interpréteur la connaisse, c'est-à-
dire qu'il connaisse son nom, ses arguments et les instructions qu'elle contient. La définition d'une
fonction s'appelle "déclaration" et peut se faire n'importe où dans le code. La déclaration d'une fonction
se fait grâce au mot-clé function, selon la syntaxe suivante :

function Nom_De_La_Fonction($argument1, $argument2, ...) {


// liste d'instructions
}

Remarques:
 Le nom de la fonction suit les mêmes règles que les noms de variables :
o le nom doit commencer par une lettre
o un nom de fonction peut comporter des lettres, des chiffres et les caractères _ et & (les
espaces ne sont pas autorisés)
o le nom de la fonction, comme celui des variables est sensible à la casse (différenciation
entre les minuscules et majuscules)
 Les arguments sont facultatifs ; s'il n'y a pas d'arguments, les parenthèses doivent rester
présentes
 Il ne faut pas oublier de refermer les accolades
 Le nombre d'accolades ouvertes (fonction, boucles et autres structures) doit être égal au nombre
d'accolades fermées
Une la fonction est déclarée, elle ne s'exécutera pas tant que l'on ne fait pas appel à elle quelque part
dans la page.
1.3. Appel de fonction
Pour exécuter une fonction, il suffit de faire appel à elle en écrivant son nom (en respectant la casse)
suivie d'une parenthèse ouverte (éventuellement des arguments) puis d'une parenthèse fermée :

Nom_De_La_Fonction();

Remarques:
 Le point-virgule signifie la fin d'une instruction et permet à l'interpréteur de distinguer les
différents blocs d'instructions
 Si jamais vous avez défini des arguments dans la déclaration de la fonction, il faudra veiller à
les inclure lors de l'appel de la fonction (même nombre d'arguments séparés par des virgules)

Nom_De_La_Fonction($argument1, $argument2);

1.4. Renvoi d'une valeur par une fonction


La fonction peut renvoyer une valeur grâce au mot-clé « return ». Lorsque l'instruction « return »
est rencontrée, la fonction évalue la valeur qui la suit, puis la renvoie au programme appelant
(programme à partir duquel la fonction a été appelée).
Une fonction peut contenir plusieurs instructions return, ce sera toutefois la première instruction return
rencontrée qui provoquera la fin de la fonction et le renvoi de la valeur qui la suit.

return valeur_ou_variable;

1.5. Retourner plusieurs variables

Lorsque vous souhaitez qu'une fonction retourne plusieurs valeurs, il faut utiliser un tableau.

<?php
function nom_fonction(){
.....
// on retourne les valeurs voulues dans un tableau
return array($variable1, $variable2, $variable3);
}

$retour = nom_fonction(); // affectation du retour dans une variable


echo "$retour[0] - $retour[1] - $retour[2]";
?>

Web Dynamique - Chapitre 3 : Fonctions et Traitement des formulaires Page 2/8


2. Traitement des formulaires avec PHP
PHP rend très simple la récupération de données envoyées par l'intermédiaire de formulaires HTML.

2.1. Création d'un formulaire


Les formulaires sont délimités par la balise <FORM> ... </FORM>, une balise qui permet de regrouper
plusieurs éléments de formulaire (boutons, champs de saisie,...) et qui possède les attributs obligatoires
suivants :
 METHOD : indique sous quelle forme seront envoyées les réponses ;
o « POST » est la valeur qui correspond à un envoi de données stockées dans le corps de la
requête ; tandis que
o « GET » correspond à un envoi des données codées dans l'URL, et séparées de l'adresse
du script par un point d'interrogation. L'ensemble des paires nom/valeur étant séparées
entre elles par le caractère &. Les données envoyées ressembleront donc à ceci :
champ1=valeur1&champ2=valeur2&champ3=valeur3

 ACTION :indique l'adresse d'envoi (page HTML ou adresse email


(mailto:adresse.email@machine)).
Pour utiliser un formulaire capable d'envoyer des informations à un script PHP, il suffit de mettre le
nom du fichier PHP qui réceptionnera les informations en tant que valeur de l'attribut « action » de la
balise <form>.
Il est possible d'insérer n'importe quel élément HTML de base dans une balise <form> (textes,
boutons, tableaux, liens,...) mais il est surtout intéressant d'insérer des éléments interactifs. Ces
éléments interactifs sont :
 La balise INPUT: un ensemble de boutons et de champs de saisie
 La balise TEXTAREA: une zone de saisie
 La balise SELECT: une liste à choix multiples
Voici un formulaire en HTML (test.html), permettant d'envoyer les coordonnées d'une personne à
un fichier PHP nommé test.php :

<html>
<body>
<form method="POST" action="test.php">
Nom : <input type="text" size="20" name="nom" /><br/>
Prénom : <input type="text" size="20" name="prenom" /><br/>
Age : <input type="text" size="2" name="age" /><br/>
Afficher : <input type="checkbox" name="afficher" value="oui" /><br/>
<input type="submit" name="enregistrer" value="Envoyer" />
</form>
</body> </html>

Web Dynamique - Chapitre 3 : Fonctions et Traitement des formulaires Page 3/8


Le résultat de ce code est le suivant :

2.2. Récupération et utilisation des données


La récupération des informations à partir d’un se fait via une variable de type tableau associatif. Les
clés dans ce tableau correspondent aux attributs « name » des champs du formulaire. Cette variable
tableau associatif tiendra compte de la méthode d’envoi des données, et notamment si l'attribut
« method » du formulaire est « GET » ou « POST ».
Voici les deux variables tableaux qu'il convient d'utiliser pour récupérer les données d'un formulaire.

Variable Signification

$_POST['donnee'] S'utilise lorsque l'attribut « method » du formulaire est POST.

S'emploie lorsque l'attribut « method » du formulaire est GET ou bien


$_GET['donnee'] lorsque celui-ci n'est pas (ou pas correctement) spécifié (méthode par
défaut).

Remarque : La clé « donnee » correspond à l'attribut « name » du champ. Si jamais un des champs
du formulaire n'est pas rempli, il possède la valeur "", c'est-à-dire une chaîne vide.

2.3. Vérification des données transmises

On utilise pour savoir si une variable existe, la fonction « isset() » : renvoie un booléen VRAI si la
variable existe, et FAUX sinon.

2.4. La méthode POST

<html>
<body>
<form method="POST" action="test.php">
Nom : <input type="text" name="nom"><br/>
Prénom : <input type="text" name="prenom"><br/>
Age : < input type="text" name="age"><br/>
<input type="submit" name="enregistrer" value="Envoyer">
</form>
</body>
</html>

Web Dynamique - Chapitre 3 : Fonctions et Traitement des formulaires Page 4/8


Lorsqu’on clique le bouton "Envoyer", l’URL suivante apparaît :
http://localhost/.../test.php. Les données proviennent du formulaire et passent dans la
variable tableau associatif $_POST.
Code PHP – test.php (méthode POST)

<?php
echo $_POST['nom']; //affiche le nom saisi
echo "<br/>";
echo $_POST['prenom'];
echo "<br/>";
echo $_POST['age'];
?>

2.5. La méthode GET

<html>
<body>
<form method="GET" action="test.php">
Nom : <input type="text" name="nom"><br/>
Prénom : <input type="text" name="prenom"><br/>
Age : <input type="text" name="age"><br/>
<input type="submit" name="enregistrer" value="Envoyer">
</form>
</body>
</html>

Lorsqu’on clique le bouton "Envoyer", l’URL


apparaît : suivante
http://localhost/.../test.php?nom=..&prenom=..&age=..&enregistrer=Envoyer.

Les données proviennent de l'url et sont stockés dans la variable tableau associatif $_GET.
Code PHP – test.php (méthode GET)

<?php
echo $_GET['nom'];
echo "<br/>";
echo $_GET['prenom'];
echo "<br/>";
echo $_GET['age'];
?>

2.6. Champ « text »


Pour attribuer une valeur par défaut à la zone de texte, il faut écrire le code HTML suivant :

Web Dynamique - Chapitre 3 : Fonctions et Traitement des formulaires Page 5/8


<form action="page.php" method="POST">
<input type="text" name="pseudo" value="Entre ici ton pseudo">
<input type="submit" value="Envoyer">
</form>

Lorsqu’on clique sur "Envoyer", $_POST['pseudo'] sera créée et sa valeur sera le pseudo saisi par
l’utilisateur. Si ce dernier a juste cliqué sur "Envoyer" sans changer la zone de texte, la variable
$_POST['pseudo'] aura pour valeur "Entre ici ton pseudo" qui est la valeur par défaut de
cette zone.

<?php
if(isset($_POST['pseudo']))
echo $_POST['pseudo'];
?>

Remarques : Le même traitement s’applique sur les mots de passe (type « password »).

2.7. Champ « textarea »


La zone de texte multi-lignes est appelée « textarea ». Voici un exemple en HTML :

<form action="traitement.php" method="POST">


<textarea name="description" rows="5" cols="50">
Entrez une description de votre site
</textarea>
<input type="submit" value="Envoyer">
</form>

Lorsque le formulaire est envoyé à la page « traitement.php », on récupère la variable


$_POST['description'].

<?php
if(isset($_POST['description']))
echo $_POST['description']);
?>

2.8. Les cases à cocher « checkbox »


Le code HTML pour utiliser une case à cocher est :

<form action="traitement.php" method="POST">


<input type="checkbox" name="connexion_automatique" value="1">
<input type="submit" value="Envoyer">
</form>

La partie de traitement en PHP pour une case à cocher :

Web Dynamique - Chapitre 3 : Fonctions et Traitement des formulaires Page 6/8


<?php if(isset($_POST['connexion_automatique']))
echo 'Vous avez coché la case';
else
echo 'La case n\' a pas été cochée';
?>

Lorsque la case à cocher n'est pas cochée, le navigateur ne renvoie rien, donc la variable
$_POST['connexion_automatique'] n'existe pas. Si elle existe, cela signifie donc que la case a
été cochée.

2.9. Les boutons à choix unique « radio »


Les boutons radio permettent de ne sélectionner qu'une seule option parmi plusieurs (il faut grouper les
boutons radios en mettant le même « name ») :

<p>Souhaitez-vous recevoir la newsletter mensuelle ?</p>


<form action="traitement.php" method="POST">
<input type="radio" name="choix" value="oui" checked>Oui
<input type="radio" name="choix" value="non">Non
<input type="submit" value="Envoyer">
</form>

Pour savoir ce qui a été sélectionné, il faut écrire le code PHP suivant :

<?php
if(isset($_POST['choix']))
echo $_POST['choix'];
//affichera "oui" ou "non" en fonction de ce qui a été sélectionné
?>

2.10. Liste de choix « select »


Le code HTML pour le select à choix unique est :

<form action="traitement.php" method="POST">


<select name="couleur">
<option value="rouge">Couleur rouge</option>
<option value="vert" selected="selected">Couleur verte</option>
<option value="bleu">Couleur bleue</option>
</select>
<input type="submit" value="Envoyer">
</form>

Si nous souhaitons afficher la couleur sélectionnée, nous utiliserons ce code :


<?php if(isset($_POST['couleur'])){
echo $_POST['couleur']; } ?>

Web Dynamique - Chapitre 3 : Fonctions et Traitement des formulaires Page 7/8


Si quelqu'un souhaite commander un article en plusieurs couleurs, il faudra qu'il puisse sélectionner
plusieurs valeurs dans le select. Le code HTML pour le select à choix multiple est :

<form action="traitement.php" method="POST">


<select name="couleur[]" multiple="multiple">
<option value="rouge">Couleur rouge</option>
<option value="vert" selected="selected">Couleur verte</option>
<option value="bleu">Couleur bleue</option>
</select>
<input type="submit" value="Envoyer">
</form>

Remarque : Si la liste est à choix multiple, il faut faire attention à ajouter deux crochets à la valeur
de l'attribut « name » de l'élément « select » ; ceci pour forcer l'enregistrement des choix sous
forme de tableau dans la variable globale « $_POST » (respectivement « $_GET »)

Si l'utilisateur sélectionne une ou plusieurs valeurs, PHP va créer un tableau $_POST['couleur'] qui
contiendra la ou les différentes valeurs que l'utilisateur aura sélectionné. Voici un exemple qui affiche
toutes les valeurs sélectionnées :

<?php
if(isset($_POST['couleur'])){
foreach($_POST['couleur'] as $valeur){
echo 'Vous avez sélectionné la couleur'. $valeur . '<br />';
}
}
?>

2.11. Les champs cachés « hidden »


Les champs cachés fonctionnent exactement de la même manière que pour un champ de texte simple, la
seule différence étant qu'ils ne seront pas affichés sur la page web. Vous pourrez transmettre ainsi des
informations que le visiteur n'a pas besoin de remplir. Voici un exemple en HTML :

<form action="traitement.php" method="POST">


<input type="hidden" name="langue" value="fr">
<input type="submit" value="Envoyer">
</form>

Et voici comment on récupère la valeur de ce champ caché en PHP :

<?php
if(isset($_POST['langue']))
echo $_POST['langue']; //affiche "fr" ?>

Web Dynamique - Chapitre 3 : Fonctions et Traitement des formulaires Page 8/8

Vous aimerez peut-être aussi