Publicité
Publicité

Contenu connexe

Publicité

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
  19. Version 2 du QCM
  20. Correction version 2
  21. Exercice 2 : mon deuxième QCM
  22. Exemple de Solution
  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é
Publicité