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