SlideShare une entreprise Scribd logo
1  sur  27
Télécharger pour lire hors ligne
LE LANGAGE PHP
Module 18: Développement web
Prof : Elyase CHIGUER
Lycée : IBN SINA
Chapitre 3:
Le Traitement des Formulaires
2
Méthode d’envoi d’un formulaire
• Méthode GET (transmission par URL) :
Une des façons les plus simples pour faire transiter des données de page en
page est l’insertion de ces données dans l’URL
Méthode d’envoi d’un formulaire
▪ Méthode POST: elle cache les informations transmises . De plus,
elle permet d'envoyer des données importantes en taille et assure la
gestion de l'envoi de fichiers.
Les tableaux superglobaux $_POST et $_GET
▪ $_GET et $_POST sont des tableaux de données associatifs et
superglobaux. Voici leurs principales caractéristiques :
▪ Ils sont générés à la volée par PHP avant même que la première ligne
du script ne soit exécuté.
▪ Ce sont des tableaux associatifs : Les clés correspondent aux noms des
variables transmises et les valeurs à celles associées à ces variables.
▪ Ils sont superglobaux, c'est à dire visibles de partout dans le
programme (même à l'intérieur d'une fonction utilisateur).
▪ Ils sont accessibles en lecture et en écriture. Il est donc possible de les
modifier.
Quelle méthode utiliser ?
• Le plus souvent, vous pouvez choisir indifféremment l’une ou l’autre
méthode d’envoi. Toutefois, la méthode POST s’impose dans les cas
suivants :
• envoi d’un fichier ;
• envoi de données importantes en taille ;
• envoi de données confidentielles (un mot de passe par exemple) ;
• La méthode GET est recommandée pour tous les autres cas.
CRÉER UN FORMULAIRE
2 fichiers
distincts:
• un pour contenir les
éléments du formulaire:
Bouton radio, Zone texte, …
• Un pour récupérer les
données saisies et les traiter
Un même fichier
• Contenant les 2: Les
éléments du formulaires
(bouton radio, …) et le script
qui les traitera
Premier cas (deux fichiers distincts)
Création du
Formulaire
en Html
Création du
script par
PHP
• Zone texte, Bouton radio
• Liste déroulante Cases à cocher
•Action="myscript.php"
• Fichier:"myscript.php"
• Récupération des données
saisies
•Traitement (programme)
Question: Le fichier
formulaire peut-
il avoir l’extension .php?
Réponse: OUI, s’il
contient un (ou des)
script(s)
php en plus du formlaire.
Sinon, .html
Deuxième cas: un seul fichier
Fichier: qcm.php
<form Name=’’ myform’’
Method=’’post’ Action=’’qcm.php’’ ….>
…………..Eléments du formulaires
</form>
<?php
Instructions de traitements des données saisies
….
?>
L’action du
formulaire est Le fichier
qui contient le formulaire
lui même
Les instructions
à exécuter sont écrites
dans ce même fichier!
Deuxième cas: un seul fichier (suite)
Lors de l’affichage pour la
Fichier: qcm.php
<form Name=’’ myform’’
Method=’’post’ Action=’’qcm.php’’ ….>
…………..Eléments du formulaires
</form>
<?php
Si les données ont été saisies
Alors
{Instructions de traitements des données
saisies}
?>
première fois du formulaire, le bloc
d’instruction php ne devra pas
s’exécuter, puisque les données
n’ont pas encore été saisies ! ! !
Il faut vérifier l’existance des
données AVANT !
Usage de
Isset($mavariable)
qui :
* retourne true si la variable
contient une valeur;
* retourne FALSE si elle n’est
pas encore définie
Récupération des données saisie dans un formulaire
▪ Elle diffère selon le type de la réponse (unique, multiple)
réponse (ou choix) unique réponses (ou choix)
multiples
Zone de saisie, Cases à cocher
bouton radio Liste de sélection à choix Multiple
zone de texte multiligne,
Liste de sélection à choix unique
Réponse unique :
L’élément choisi est récupéré du tableau $_POST par son nom
Il est récupéré dans une variable
$x=$_POST["nom_du_champs"]
Ou
$x= $_GET ["nom du_champs"]
Le traitement d’une liste déroulante
<body>
<form action="traitement.php" method="post">
<p>
<select name="couleur">
<option value="rouge">Couleur rouge</option>
<option value="vert"
selected="selected">Couleur verte</option>
<option value="bleu">Couleur bleue</option>
</select></p>
<p><input type="submit" value="Envoyer" /></p>
</form>
<?php
if(isset($_POST['couleur']))
{
echo "la couleur sélectionnée
est".$_POST['couleur'];
}
?>
</body>
Récupération : Elément à réponse multiples
▪ Cases à cocher:
▪ Seuls les éléments cochés seront envoyés
▪ L’élément est récupéré par son nom dans une variable
$x=$_POST["macaseacocher"]
▪ Liste de sélection à choix multiple (défilante) :
▪ Le nom de l’élément dans le formulaire doit être suivi des []
▪ Les réponses choisies sont envoyées sous forme d’un tableau
▪ Les réponses sont donc récupérés dans un tableau :
$tablo = $_POST ["malisteselect"]
Le traitement d’une liste défilante
<form name="test" id="test" method="post"
action="#">
<select name="couleur[ ]" multiple size="5">
<option value="Rouge">Rouge</option>
<option value="Vert">Vert</option>
<option value="Bleu">Bleu</option>
<option value="Noir">Noir</option>
</select>
<input type="submit" value="Envoyer"
name="but_submit">
</form>
<?php
if(isset($_POST["but_submit"]))
{
$tab = $_POST["couleur"];
foreach($tab as $selectValue)
{
echo $selectValue."<br>";
}
}
?>
Le traitement de case à cocher
Le fichier de traitement
Exercice 1 : un QCM simple
▪ Réaliser le qcm ci-dessous
Rappel sur les boutons radio:
1. Les boutons doivent avoir le même nom (name)
2. Les valeurs doivent être différentes (value)
EX: Si l’internaute clique sur le troisième: le couple (q,r3) est stocké dans
le tableau $_POST puis envoyé au script défini
8comme action du formulaire $_POST['q']=r3
Correction version 1
Fichier: qcm.php
Fichier: correction.php
Version 2 du QCM
Correction version 2
Exercice 2 : mon deuxième QCM
Exemple de Solution
Exercice
Réalisez un QCM de 10 questions concernant
HTML, CSS , PHP et qui affiche le score
▪ Le code ci-dessus a le gros défaut de "faire confiance" à l'utilisateur en ne
vérifiant pas les informations reçues. En effet, un utilisateur mal intentionné
peut par exemple à la place de son nom mettre du code HTML ou Javascript
ce qui représente une faille de sécurité très importante.
▪ Taper par exemple : <script> alert('Site Hacké !!!'); </script> à la place de
votre nom et valider le formulaire.
▪ Il faut donc systématiquement supprimer ou "échapper" les éventuelles
balises que l'utilisateur aurait pu envoyer.
▪ Pour cela le langage php met à notre disposition 2 fonctions :
•htmlspecialchars() : Convertit les caractères spéciaux en entités HTML
(par exemple "<" (inférieur à) devient "&lt;")
•strip_tags() : Supprime les balises HTML et PHP d'une chaîne
Sécurité
Cours PHP-CHAP3.pdf
Cours PHP-CHAP3.pdf
Cours PHP-CHAP3.pdf

Contenu connexe

Similaire à Cours PHP-CHAP3.pdf

Similaire à Cours PHP-CHAP3.pdf (20)

Presentation
PresentationPresentation
Presentation
 
Application web php5 html5 css3 bootstrap
Application web php5 html5 css3 bootstrapApplication web php5 html5 css3 bootstrap
Application web php5 html5 css3 bootstrap
 
PHP.pptx
PHP.pptxPHP.pptx
PHP.pptx
 
Initiation au php
Initiation au phpInitiation au php
Initiation au php
 
Initiation au php
Initiation au phpInitiation au php
Initiation au php
 
Créer une barre de progression grâce à PHP 5.4
Créer une barre de progression grâce à PHP 5.4Créer une barre de progression grâce à PHP 5.4
Créer une barre de progression grâce à PHP 5.4
 
PHP Training
PHP TrainingPHP Training
PHP Training
 
Cours php bac info
Cours php bac infoCours php bac info
Cours php bac info
 
Php 2 - Approfondissement MySQL, PDO et MVC
Php 2 - Approfondissement MySQL, PDO et MVCPhp 2 - Approfondissement MySQL, PDO et MVC
Php 2 - Approfondissement MySQL, PDO et MVC
 
Php & My Sql
Php & My SqlPhp & My Sql
Php & My Sql
 
Php & My Sql
Php & My SqlPhp & My Sql
Php & My Sql
 
Les principes de base de PHP
 Les principes de base de PHP  Les principes de base de PHP
Les principes de base de PHP
 
Php cours
Php coursPhp cours
Php cours
 
Formation cakephp
Formation cakephpFormation cakephp
Formation cakephp
 
PHP mysql Xml.pdf
PHP mysql Xml.pdfPHP mysql Xml.pdf
PHP mysql Xml.pdf
 
Cours doumi spss 2013 2014
Cours doumi spss 2013 2014Cours doumi spss 2013 2014
Cours doumi spss 2013 2014
 
Des tests modernes pour Drupal
Des tests modernes pour DrupalDes tests modernes pour Drupal
Des tests modernes pour Drupal
 
Php4 Mysql
Php4 MysqlPhp4 Mysql
Php4 Mysql
 
ALGORITHMIQUE fonction et procedure.pptx
ALGORITHMIQUE fonction et procedure.pptxALGORITHMIQUE fonction et procedure.pptx
ALGORITHMIQUE fonction et procedure.pptx
 
PHP mysql Xml.doc
PHP mysql Xml.docPHP mysql Xml.doc
PHP mysql Xml.doc
 

Plus de Hathat10

Maintenance adaptative _maintenance.pptx
Maintenance   adaptative  _maintenance.pptxMaintenance   adaptative  _maintenance.pptx
Maintenance adaptative _maintenance.pptxHathat10
 
Droit_des_contrats_doroit des Contrata.ppt
Droit_des_contrats_doroit des Contrata.pptDroit_des_contrats_doroit des Contrata.ppt
Droit_des_contrats_doroit des Contrata.pptHathat10
 
presentation auto ecole projet inial .pptx
presentation auto ecole projet inial .pptxpresentation auto ecole projet inial .pptx
presentation auto ecole projet inial .pptxHathat10
 
Structure interne d’un ordinateur.pptx
Structure interne d’un ordinateur.pptxStructure interne d’un ordinateur.pptx
Structure interne d’un ordinateur.pptxHathat10
 
clientserveur.pptx
clientserveur.pptxclientserveur.pptx
clientserveur.pptxHathat10
 
algorithme chapitre 1 et 2 (1).pptx
algorithme chapitre 1 et 2 (1).pptxalgorithme chapitre 1 et 2 (1).pptx
algorithme chapitre 1 et 2 (1).pptxHathat10
 

Plus de Hathat10 (7)

Maintenance adaptative _maintenance.pptx
Maintenance   adaptative  _maintenance.pptxMaintenance   adaptative  _maintenance.pptx
Maintenance adaptative _maintenance.pptx
 
Droit_des_contrats_doroit des Contrata.ppt
Droit_des_contrats_doroit des Contrata.pptDroit_des_contrats_doroit des Contrata.ppt
Droit_des_contrats_doroit des Contrata.ppt
 
presentation auto ecole projet inial .pptx
presentation auto ecole projet inial .pptxpresentation auto ecole projet inial .pptx
presentation auto ecole projet inial .pptx
 
Structure interne d’un ordinateur.pptx
Structure interne d’un ordinateur.pptxStructure interne d’un ordinateur.pptx
Structure interne d’un ordinateur.pptx
 
clientserveur.pptx
clientserveur.pptxclientserveur.pptx
clientserveur.pptx
 
algorithme chapitre 1 et 2 (1).pptx
algorithme chapitre 1 et 2 (1).pptxalgorithme chapitre 1 et 2 (1).pptx
algorithme chapitre 1 et 2 (1).pptx
 
1.pdf
1.pdf1.pdf
1.pdf
 

Cours PHP-CHAP3.pdf

  • 1. LE LANGAGE PHP Module 18: Développement web Prof : Elyase CHIGUER Lycée : IBN SINA
  • 2. Chapitre 3: Le Traitement des Formulaires
  • 3. 2 Méthode d’envoi d’un formulaire • Méthode GET (transmission par URL) : Une des façons les plus simples pour faire transiter des données de page en page est l’insertion de ces données dans l’URL
  • 4. Méthode d’envoi d’un formulaire ▪ Méthode POST: elle cache les informations transmises . De plus, elle permet d'envoyer des données importantes en taille et assure la gestion de l'envoi de fichiers.
  • 5. Les tableaux superglobaux $_POST et $_GET ▪ $_GET et $_POST sont des tableaux de données associatifs et superglobaux. Voici leurs principales caractéristiques : ▪ Ils sont générés à la volée par PHP avant même que la première ligne du script ne soit exécuté. ▪ Ce sont des tableaux associatifs : Les clés correspondent aux noms des variables transmises et les valeurs à celles associées à ces variables. ▪ Ils sont superglobaux, c'est à dire visibles de partout dans le programme (même à l'intérieur d'une fonction utilisateur). ▪ Ils sont accessibles en lecture et en écriture. Il est donc possible de les modifier.
  • 6. Quelle méthode utiliser ? • Le plus souvent, vous pouvez choisir indifféremment l’une ou l’autre méthode d’envoi. Toutefois, la méthode POST s’impose dans les cas suivants : • envoi d’un fichier ; • envoi de données importantes en taille ; • envoi de données confidentielles (un mot de passe par exemple) ; • La méthode GET est recommandée pour tous les autres cas.
  • 7. CRÉER UN FORMULAIRE 2 fichiers distincts: • un pour contenir les éléments du formulaire: Bouton radio, Zone texte, … • Un pour récupérer les données saisies et les traiter Un même fichier • Contenant les 2: Les éléments du formulaires (bouton radio, …) et le script qui les traitera
  • 8. Premier cas (deux fichiers distincts) Création du Formulaire en Html Création du script par PHP • Zone texte, Bouton radio • Liste déroulante Cases à cocher •Action="myscript.php" • Fichier:"myscript.php" • Récupération des données saisies •Traitement (programme) Question: Le fichier formulaire peut- il avoir l’extension .php? Réponse: OUI, s’il contient un (ou des) script(s) php en plus du formlaire. Sinon, .html
  • 9. Deuxième cas: un seul fichier Fichier: qcm.php <form Name=’’ myform’’ Method=’’post’ Action=’’qcm.php’’ ….> …………..Eléments du formulaires </form> <?php Instructions de traitements des données saisies …. ?> L’action du formulaire est Le fichier qui contient le formulaire lui même Les instructions à exécuter sont écrites dans ce même fichier!
  • 10. Deuxième cas: un seul fichier (suite) Lors de l’affichage pour la Fichier: qcm.php <form Name=’’ myform’’ Method=’’post’ Action=’’qcm.php’’ ….> …………..Eléments du formulaires </form> <?php Si les données ont été saisies Alors {Instructions de traitements des données saisies} ?> première fois du formulaire, le bloc d’instruction php ne devra pas s’exécuter, puisque les données n’ont pas encore été saisies ! ! ! Il faut vérifier l’existance des données AVANT ! Usage de Isset($mavariable) qui : * retourne true si la variable contient une valeur; * retourne FALSE si elle n’est pas encore définie
  • 11. Récupération des données saisie dans un formulaire ▪ Elle diffère selon le type de la réponse (unique, multiple) réponse (ou choix) unique réponses (ou choix) multiples Zone de saisie, Cases à cocher bouton radio Liste de sélection à choix Multiple zone de texte multiligne, Liste de sélection à choix unique Réponse unique : L’élément choisi est récupéré du tableau $_POST par son nom Il est récupéré dans une variable $x=$_POST["nom_du_champs"] Ou $x= $_GET ["nom du_champs"]
  • 12. Le traitement d’une liste déroulante <body> <form action="traitement.php" method="post"> <p> <select name="couleur"> <option value="rouge">Couleur rouge</option> <option value="vert" selected="selected">Couleur verte</option> <option value="bleu">Couleur bleue</option> </select></p> <p><input type="submit" value="Envoyer" /></p> </form> <?php if(isset($_POST['couleur'])) { echo "la couleur sélectionnée est".$_POST['couleur']; } ?> </body>
  • 13. Récupération : Elément à réponse multiples ▪ Cases à cocher: ▪ Seuls les éléments cochés seront envoyés ▪ L’élément est récupéré par son nom dans une variable $x=$_POST["macaseacocher"] ▪ Liste de sélection à choix multiple (défilante) : ▪ Le nom de l’élément dans le formulaire doit être suivi des [] ▪ Les réponses choisies sont envoyées sous forme d’un tableau ▪ Les réponses sont donc récupérés dans un tableau : $tablo = $_POST ["malisteselect"]
  • 14. Le traitement d’une liste défilante <form name="test" id="test" method="post" action="#"> <select name="couleur[ ]" multiple size="5"> <option value="Rouge">Rouge</option> <option value="Vert">Vert</option> <option value="Bleu">Bleu</option> <option value="Noir">Noir</option> </select> <input type="submit" value="Envoyer" name="but_submit"> </form> <?php if(isset($_POST["but_submit"])) { $tab = $_POST["couleur"]; foreach($tab as $selectValue) { echo $selectValue."<br>"; } } ?>
  • 15. Le traitement de case à cocher
  • 16. Le fichier de traitement
  • 17. Exercice 1 : un QCM simple ▪ Réaliser le qcm ci-dessous Rappel sur les boutons radio: 1. Les boutons doivent avoir le même nom (name) 2. Les valeurs doivent être différentes (value) EX: Si l’internaute clique sur le troisième: le couple (q,r3) est stocké dans le tableau $_POST puis envoyé au script défini 8comme action du formulaire $_POST['q']=r3
  • 18. Correction version 1 Fichier: qcm.php Fichier: correction.php
  • 21. Exercice 2 : mon deuxième QCM
  • 23. Exercice Réalisez un QCM de 10 questions concernant HTML, CSS , PHP et qui affiche le score
  • 24. ▪ Le code ci-dessus a le gros défaut de "faire confiance" à l'utilisateur en ne vérifiant pas les informations reçues. En effet, un utilisateur mal intentionné peut par exemple à la place de son nom mettre du code HTML ou Javascript ce qui représente une faille de sécurité très importante. ▪ Taper par exemple : <script> alert('Site Hacké !!!'); </script> à la place de votre nom et valider le formulaire. ▪ Il faut donc systématiquement supprimer ou "échapper" les éventuelles balises que l'utilisateur aurait pu envoyer. ▪ Pour cela le langage php met à notre disposition 2 fonctions : •htmlspecialchars() : Convertit les caractères spéciaux en entités HTML (par exemple "<" (inférieur à) devient "&lt;") •strip_tags() : Supprime les balises HTML et PHP d'une chaîne Sécurité