TP de PHP - Master MIP 2ème année, option PM
Transcription
TP de PHP - Master MIP 2ème année, option PM
École Marocaine des Sciences de l'Ingénieur - Master Maintenance et Production PROGRAMMATION PHP - Travaux dirigés et pratiques 1. Rappels de HTML et PHP 1.1. Principales balises HTML 1.1.1. Créer 2 pages web reproduisant les tableaux suivants : Numéro 1 2 Nom Abbou, Mohammed Boujiha, Halima Liste des étudiants Numéro Nom 1 Abbou, Mohammed 2 Boujiha, Halima Rappel : les balises HTML nécessaires pour commencer un tableau, une ligne de tableau et une cellule sont respectivement <table>, <tr> et <td>. 1.1.2. Créer des pages web reproduisant les formulaires suivants : Rappel : la balise HTML pour commencer un formulaire est <form>, les éléments de formulaires sont ici créés avec <input type="text"> et <input type="submit"> pour le bouton d'envoi. La liste déroulante est créée avec la balise <select> , ses items avec <option>. 1.1.3. Créer une page web covoiturage.htm reproduisant le formulaire cicontre. Dans cet exemple, les utilisateurs sont invités à saisir quelques informations dans un but de covoiturage. Rappel : Un bouton radio est créé avec <input type="radio">. 1.2. Bases de PHP 1.2.1. Écrire un script covoiturage_tr.php qui traite le formulaire de l'exercice 1.1.3. en affichant simplement les valeurs qui y ont été saisies (affichage de la variable $_POST grâce à la fonction print_r). 1.2.2. Réécrire le script précédent en utilisant une boucle foreach(). 1.2.3. Modifier le formulaire et le script de traitement pour pouvoir sélectionner plusieurs villes dans la liste de dessertes, et stocker celles-ci sous forme de tableau. Afficher alors de manière personnalisée la liste des valeurs saisies (notamment les villes choisies), par exemple sous la forme : nom -> Losson prenom -> Olivier tolerance -> 15 villes -> (1,3) fumeur -> Non envoyer -> 1/4 École Marocaine des Sciences de l'Ingénieur - Master Maintenance et Production 1.3. Structures de contrôle 1.3.1. Écrire un script calculer_operation.php, qui permet de calculer et d'afficher le résultat de l'opération définie dans le dernier formulaire de l'exercice 1.1.2. : Remarque : Dans cette première version, on ne fera pas de test de validité des saisies de l’utilisateur (les nombres non saisis seront considérés comme égaux à 0). Par ailleurs, la méthode utilisée pour transmettre les données saisies est GET. 1.3.2. Le programme doit être maintenant robuste aux erreurs de saisie, en proposant à nouveau à l’utilisateur la saisie des opérandes si les valeurs entrées ne sont pas numériques. Réécrire le formulaire et son script de traitement en un seul (operation.php) effectuant la même chose que précédemment, mais qui teste en plus si les saisies sont correctes. Si c’est le cas, on affiche le résultat ; sinon, on redemande d’effectuer la saisie : 1.4. Tableaux 1.4.1. Écrire un script tab_php2html.php qui affiche le contenu d'un tableau mono-dimensionnel PHP (clés et valeurs) au moyen de balises HTML (<table>, <tr> et <td>), les clés étant présentées comme en-tête des lignes grâce à la balise <th>. On écrira un programme de test qui remplit le tableau avec la table de multiplication d'un nombre (de 0 à 10 fois). 0*13 = 0 1*13 = 13 2*13 = 26 3*13 = 39 4*13 = 52 5*13 = 65 6*13 = 78 7*13 = 91 GPAO 12.5 Abbou Boujiha 10*13 = 130 tab_php2html.php 4.5 VBA 9 Aucune note GPAO Frik Yahia 13 VBA 10.5 Langage C 8*13 = 104 9*13 = 117 BD 6.5 Aucune note tab_php2html2d.php 2/4 École Marocaine des Sciences de l'Ingénieur - Master Maintenance et Production 1.4.2. Étendre le script précédent aux tableaux à deux dimensions (tab_php2html2d.php). 1.4.3. Sur le modèle du script de l'exercice 1.4.1., écrire une fonction tab_php2html() qui retourne une chaîne constituée du code HTML correspondant au tableau passé en paramètre. On pourra cette fois utiliser les fonctions intégrées array_keys(), array_values() et join(). 1.4.4. Écrire une fonction tab_valeurs_uniques() qui supprime les valeurs en double dans un tableau mododimensionnel (cette fonction, équivalente à la fonction intégrée array_unique(), retourne un nouveau tableau, dédoublonné). Tester cette fonction au moyen de celle écrite à l'exercice 1.4.3. Tableau initial : Résultat du dédoublonnage : 0 1 2 3 4 5 6 7 8 9 10 11 12 5 3 5 1 8 3 5 1 3 2 2 9 1 0 1 2 3 4 5 5 3 1 8 2 9 2. Pages dynamiques et Bases de données 2.1. Premiers pas Dans cette partie, on travaille sur la base Etudiants dont le schéma relationnel est donné ci-contre. 2.1.1. Écrire un script afficher_etu.php qui affiche toute la table Etudiant de la base Etudiants sous forme de tableau dans une page HTML : Numéro 2 1 … Nom Dubois, Jules Dupont, Charles … 2.1.2. Écrire un script afficher_liste_etu.php qui propose une liste déroulante des étudiants présents dans la table Etudiant : 2.1.3. Modifier le script précédent en afficher_infos_etu.php pour qu'il affiche les informations relatives à l'étudiant choisi dans la liste : 3/4 École Marocaine des Sciences de l'Ingénieur - Master Maintenance et Production 2.2. Formulaires dynamiques et méthode POST 2.2.1. Écrire un script afficher_notes_etu.php qui affiche une liste déroulante des étudiants présents dans la base, ainsi que le relevé de notes de celui que l'utilisateur a choisi : Relevé de notes N° étudiant : 6 (Humbert, Odile) N° Mat. Nom matière Coef Note /20 2 Bases de données 2 13 3 G.P.A.O. 2 10 4 Logique 1 11 Moyenne 11.4 2.2.2. Modifier le script précédent en ajouter_note_etu.php pour permettre à l'utilisateur d'ajouter une nouvelle note pour l'étudiant choisi et ce, uniquement si l'étudiant n'a pas encore de notes dans les 5 matières : Écrire le script de traitement (ajouter_note_etu_tr.php) de ce formulaire. 2.2.3. Dupliquer le programme afficher_notes_etu.php en le renommant modifier_notes_etu.php, puis le modifier pour qu'il permette à l'utilisateur de saisir de nouvelles notes pour l'étudiant choisi : Écrire le script de traitement (modifier_notes_etu_tr.php) de ce formulaire. 4/4