APPTSWD Apprentissage Par Problmes Techniques des Sites Web
APP-TSWD Apprentissage Par Problèmes Techniques des Sites Web Dynamiques Licence Professionnelle FNEPI Cours en Réponse à questions, n° 3 Valérie Bellynck, Benjamin Brichet-Billet, Mazen Mahrous Grenoble INP – Pagora 10 novembre 2014
Questions reçues 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 ?
Formulaires HTML et PHP
Rappels HTML : les formulaires - Balise <form>…</form> - Attributs: - method - post - get - Différences - Des valeurs passées par GET se voient dans l’URL ex: http: //ma. Page. php? val 1=huhu&val 2=hehe - 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 complet: (source et résultat) http: //www. tiprof. fr/PHP-my. SQL/ressources/html-form. html
Exemple de mini-formulaire html-form. html <FORM ACTION="rep_html-form. php" METHOD="GET"> Nom : <INPUT TYPE="text" NAME="nom" SIZE="20" VALUE="Untel"> <BR> <INPUT TYPE="radio" NAME="sexe" VALUE="H" CHECKED> Homme <BR> <INPUT TYPE="radio" NAME="sexe" VALUE="F"> Femme <BR> Password : <INPUT TYPE="password" NAME="pwd" SIZE="8"> <BR> <INPUT TYPE="hidden" NAME="numero" VALUE="121"> <INPUT TYPE="hidden" NAME="action" VALUE="saisie_etud"> <INPUT TYPE="checkbox" NAME="filiere 1" VALUE="info" CHECKED> Informatique <BR> <INPUT TYPE="checkbox" NAME="filiere 2" VALUE="tr"> Telecom-Reseaux <BR> <INPUT TYPE="checkbox" NAME="filiere 3" VALUE="en"> Electronique <BR> <SELECT NAME="annee"> <OPTION VALUE="a 1"> A 1</OPTION> <OPTION SELECTED VALUE="a 2"> A 2</OPTION> <OPTION VALUE="a 3"> A 3</OPTION> </SELECT> <BR /><INPUT TYPE="submit" VALUE="Envoyer les infos"><BR /> </FORM>
Méthodes de transmission : GET, POST Osef. php Ex_form. html Essayer: http: //tiprof. fr/Sites. Web. Dynamic/Techniques-swd/matériel/form_getpost/mini-form. php? quoi=sertgsrtf Voir : http: //tiprof. fr/Sites. Web. Dynamic/Techniques-swd/matériel/form_getpost/
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 du PHP - pour re-envoyer sur le formulaire lui-même - pour réafficher avec les valeurs saisies - pour les cases-à-cocher <FORM ACTION="<? php echo $_SERVER['PHP_SELF'] ? >" METHOD= » POST"> Nom : <INPUT TYPE="text" NAME="nom" SIZE="20" VALUE="<? = $_POST['nom'] ? >"> <BR> <INPUT TYPE="radio" NAME="sexe" VALUE="H" CHECKED> Homme <BR> <INPUT TYPE="radio" NAME="sexe" VALUE="F"> Femme <BR> Password : <INPUT TYPE="password" NAME="pwd" SIZE="8"> <BR> <INPUT TYPE="hidden" NAME="numero" VALUE="121"> <INPUT TYPE="hidden" NAME="action" VALUE="<? = $_POST['action'] ? > » > <? php $list. Option = array("info"=>"Informatique", "tr"=>"Telecom-Reseaux", "en"=>"Electronique”) ; foreach($list. Option as $k => $opt) { $val. Cked = ($_POST['filiere']== $k)? 'CHECKED' : '' ; ? > <INPUT TYPE="checkbox" NAME="filiere" VALUE="<? = $ k ? >" <? = $val. Cked ? > > <? = $ opt ? > <BR> <? php } // fin foreach ? > <SELECT NAME="annee"> <OPTION <? = ($_POST['annee']== 'a 1')? 'SELECTED' : '') ? > VALUE="a 1"> A 1</OPTION> <OPTION <? = ($_POST['annee']== 'a 2')? 'SELECTED' : '') ? > VALUE="a 2"> A 2</OPTION> <OPTION <? = ($_POST['annee']== 'a 3')? 'SELECTED' : '') ? > VALUE="a 3"> A 3</OPTION> </SELECT> <BR /><INPUT TYPE="submit" NAME="lancer" VALUE="Envoyer les infos"><BR /> </FORM> html-form. php
Actions des formulaires du PHP - pour récupérer les valeurs POST - pour traiter les actions (programme principal) <? php foreach($_REQUEST as $k => $v) { echo " n <br /><code>$k</code><tt>$v</tt> "; } ? > <FORM ACTION="<? php echo $_SERVER['PHP_SELF'] ? >" METHOD="POST"> <? php switch ($_REQUEST['lancer’] { case 'Afficher': afficher(); break; case 'Enregistrer': enregistrer(); break; default : afficher(); } ? > … <p> <INPUT TYPE="submit" NAME="lancer" VALUE="Enregistrer"> <INPUT TYPE="submit" NAME="lancer" VALUE="Afficher"> </p> </FORM>
3 pages HTML contenant des portions de formulaire dans 3 fichiers distincts http: //www. tiprof. fr/Sites. Web. Dynamic/Techniques-swd/matériel/mysql/ : 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 Quand il y a une BD, il faut connecter les 2 serveurs Tout se joue dans un gros switch
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 <p class="trace"> Récupération des valeurs du. csv ligne par ligne </p> Et lui associer un style CSS . trace { display: block; background-color: #ffffbb; border: 1 px solid #008888; color: #008888; }
Introduction du code effectif des actions
Références
Liens et exemples en ligne http: //tiprof. fr/Sites. Web. Dynamic/Techniques-swd/matériel/form_getpost/mini-form. php Le formulaire GET/POST du diaporama, avec les / qui passent mal. . . http: //www. tiprof. fr/Sites. Web. Dynamic/Techniques-swd/matériel/form_getpost/ la suite de la page explique comment les gérer. Le triple formulaire avec un minimum d'actions pour des cartes de visite http: //tiprof. fr/Sites. Web. Dynamic/Techniques-swd/matériel/mysql/ 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 http: //tiprof. fr/PHP-my. SQL/ressources/conception/ http: //tiprof. fr/Essais-php-js/formulaires/form-prog-principal/form. php Attention : il est très probable que le QCM de l’examen sera inspiré des questions des fiches de TD de tiprof : http: //tiprof. fr/PHP-my. SQL/Travaux%20 Dirig%C 3%A 9 s/TD 2 -Form/ http: //tiprof. fr/PHP-my. SQL/Travaux%20 Dirig%C 3%A 9 s/TD 4 -Deploie/
- Slides: 26