APP-TSWD Apprentissage Par Problèmes Techniques des Sites Web Dynamiques Licence Professionnelle FNEPI Valérie Bellynck, Benjamin Brichet-Billet, Mazen Mahrous Grenoble INP – Pagora 10 novembre 2014 Cours en Réponse à questions, n° 3
Groupe : ? Autres groupes ? ? Profs Comment le serveur récupère-t-il les valeurs renseignées dans el formulaire ? Cas des boutons radio, les menus « surgissant » et des cases à cocher ? Cas des boutons, et du champ de type « hidden » ? Différence entre les méthodes GET et POST ? Peut-on cumuler les méthodes GET et POST ? Peut-on utiliser la méthode GET pour paramètrer une feuille de style ? Qu’est-ce qu’un programme principal ? Questions reçues
Formulaires HTML et PHP
Rappels HTML : les formulaires Exemple complet: (source et résultat) -Balise … -Attributs: -method -post -get -Différences -Des valeurs passées par GET se voient dans l’URL ex: -GET limité en taille (255 caractères) -Action: -Ce qu’il se passe après la validation -Script php, perl, … -envoie d’un mail -Etc
Exemple de mini-formulaire Nom : Homme Femme Password : Informatique Telecom-Reseaux Electronique A1 A2 A3 html-form.html
Méthodes de transmission : GET, POST Osef.php Ex_form.html Essayer: mini-form.php?quoi=sertgsrtf mini-form.php?quoi=sertgsrtf Voir :
Paramètres GET et POST : mini-formulaire
Méthode GET
Méthode POST
Méthode POST avec String-Query Les valeurs POST écrasent les valeurs GET dans $_RESQUEST
Un programme principal pour Séquencer les actions
Traitements des formulaires Conseils : utiliser la méthode POST utiliser le même « name » pour les boutons de soumission Où utiliser le PHP ? pour récupérer les valeurs POST pour traiter les actions (programme principal) pour re-envoyer sur le formulaire lui-même pour réafficher avec les valeurs saisies pour les cases-à-cocher et autres choix
Formulaires HTML et PHP " METHOD= »POST"> Nom : "> Homme Femme Password : »> <?php $listOption = array("info"=>" Informatique ", "tr"=>" Telecom-Reseaux ", "en"=>" Electronique ”) ; foreach($listOption as $k => $opt) { $valCked = ($_POST['filiere']== $k)? 'CHECKED' : '' ; ?> " > <?php } // fin foreach ?> VALUE="a1"> A1 VALUE="a2"> A2 VALUE="a3"> A3 html-form.php du PHP - pour re-envoyer sur le formulaire lui-même - pour réafficher avec les valeurs saisies - pour les cases-à-cocher
Actions des formulaires <?php foreach($_REQUEST as $k => $v) { echo " \n $k $v "; } ?> " METHOD="POST"> <?php switch ($_REQUEST['lancer’] { case 'Afficher': afficher(); break; case 'Enregistrer': enregistrer(); break; default : afficher(); } ?> … du PHP - pour récupérer les valeurs POST - pour traiter les actions (programme principal)
3 pages HTML contenant des portions de formulaire dans 3 fichiers distincts Modularisation du code : plusieurs fichiers à inclure (ou des fonctions)
Modularisation du code : afficher
Modularisation du code : insérer
Modularisation du code : visualiser
Modularisation du code : programme principal (=le chef d’orchestre )
Séquencement d’un formulaire But : concevoir le flux de contrôle Etape 1 : réaliser le formulaire qui en fait rien mais dit ce qu’il fera Etape 2 : réaliser chacune de action Etape 3 : essayer le formulaire et le compléter Tout le monde doit être d’accord On doit pouvoir le tester « unitairement » On peut se répartir les tâches On recommence
Séquencement du formulaire Tout se joue dans un gros switch Quand il y a une BD, il faut connecter les 2 serveurs
Séquencement du formulaire : le switch
Sequencement : mise au point Un truc de mise au point : Faire écrire des textes de trace dans une balise Récupération des valeurs du.csv ligne par ligne Et lui associer un style CSS.trace { display:block; background-color: #ffffbb; border: 1px solid #008888; color: #008888; }
Introduction du code effectif des actions
Références
Le formulaire GET/POST du diaporama, avec les / qui passent mal... la suite de la page explique comment les gérer. Le triple formulaire avec un minimum d'actions pour des cartes de visite Le formulaire avec le programme principal qui ne fait rien expliqué et les codes correspondants de celui qui mémorise dans la base de données Attention : il est très probable que le QCM de l’examen sera inspiré des questions des fiches de TD de tiprof : Liens et exemples en ligne