M1202 - TP 1

Transcription

M1202 - TP 1
Nom : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Prénom : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Groupe : . . .
M1202 - TP 1 - sujet A
J. Landré, A. Haraoubia, D. Thiroine
Il y a deux parties distinctes dans ce premier TP de PHP.
Dans la partie 1, on va considérer une installation locale de PHP qui n’a pas bien marché puisque la commande
”php.exe” n’est pas disponible dans le PATH de Windows directement. Vous aurez donc à donner les chemins relatifs
et absolus pour lancer l’exécution de ”php.exe” sur le fichier ”bonjour.php”.
Dans la partie 2, vous allez utiliser le moteur PHP disponible sur la machine ”195.83.128.55”. Il faudra donc envoyer
vos fichiers PHP sur le serveur dans un dossier ”m1202” à créer dans votre ”public_html” et visualiser le résultat avec
votre navigateur.
1
PHP en local
Une installation de PHP en local s’est mal passée. Le fichier ”php.exe” n’est pas dans le chemin de recherche des
commandes de Windows (PATH). Il faut donc écrire les chemins pour lancer notre fichier PHP ”bonjour.php”.
Le dessin ci-dessous décrit notre arborescence de fichiers. Le dossier actif (celui dans lequel on se trouve lorsqu’on
ouvre la fenêtre de commandes est indiqué par une ellipse rouge autour de son nom). Il vous est demandé de donner
les chemins pour lancer le moteur ”php.exe” sur votre fichier ”bonjour.php”.
FIGURE 1 – L’arbre des fichiers avec le dossier actif entouré en rouge.
- Écrire dans les cases correspondantes les chemins pour lancer le moteur PHP ”php.exe” sur le fichier ”bonjour.php” :
a) absolu absolu
b) relatif absolu
c) absolu relatif
d) relatif relatif
1
2
PHP à distance
Nous allons utiliser le moteur PHP installé sur la machine ”195.83.128.55”. Il faudra donc envoyer les fichiers sur
le serveur dans un dossier ”m1202” dans votre ”public_html”. Vous devrez toujours écrire votre code PHP dans une
page HTML.
- Pour vous aider, on donne un exemple d’intégration d’un code PHP dans un fichier HTML ci-dessous :
1
2
3
<!DOCTYPE html>
<html lang="fr">
<head>
4
5
6
7
8
9
10
11
</html>
2.1
<meta charset="utf-8" />
</head>
<body style="font-family: sans-serif;">
<?php
echo '<p>Bonjour le monde !</p>'."\n";
?>
</body>
Une petite question pour commencer…
- Quelle est l’extension obligatoire des fichiers PHP ? Pourquoi ?
2.2
Boucles for et while
- On donne le programme PHP suivant :
1
<?php
2
3
4
5
6
7
8
9
?>
echo '<p>'."\n";
$somme=0;
for ($i=123; $i<147; $i+=3) {
$somme=$somme+$i;
}
echo 'La somme vaut : '.$somme;
echo '</p>'."\n";
- Copier ce programme dans votre dossier ”m1202”, visualisez-le avec votre navigateur et répondez aux questions
ci-dessous :
a) Quelle est la ligne résultat affichée par ce programme ?
b) Transformez la boucle ”for” en boucle ”while”, réécrire votre code ci-dessous :
1
<?php
2
3
echo '<p>'."\n";
$somme=0;
4
5
6
7
8
9
10
11
?>
echo 'La somme vaut : '.$somme;
echo '</p>'."\n";
2
2.3
Punition en PHP
- Comme l’enseignant en PHP nous a donné une punition à faire, on souhaite écrire un programme qui va afficher
un certain nombre de fois le message ”Je dois apprendre mon cours de PHP !”. C’est donc l’ordinateur qui va écrire
notre punition.
- Écrire un programme PHP qui affiche 5 lignes de la punition.
a) Sans utiliser de boucle :
1
<?php
2
3
4
5
6
7
8
9
10
11
?>
b) Avec une boucle ”while” :
1
<?php
2
3
4
5
6
7
8
9
10
11
?>
2.4
Boucle, test conditionnel et modulo
Dans cette partie, on va créer une table HTML qui sera un bon de commande avec un certain nombre de lignes
défini par une variable $lignes.
- On rappelle qu’une table HTML est construite de la façon suivante : <tr> et </tr> désignent une nouvelle ligne dans
la table, <td> et </td> définissent le début et la fin d’une cellule dans la ligne. Le contenu da la cellule est écrit entre
<td> et </td>. Si la cellule est vide, il faut mettre au moins un espace insécable ”&nbsp;” dedans pour que la cellule ait
une hauteur définie.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<!DOCTYPE html>
<html lang="fr">
<head> <meta charset="utf-8" /> </head>
<body style="font-family: sans-serif;">
<h1>Bon de commande</h1>
<table border="1px">
<tr height="30px">
<td width="200px">Désignation</td><td width="100px">Quantité</td>
<td width="100px">Prix unitaire</td><td width="100px">Total</td>
</tr>
<?php
$lignes=7;
// Du code PHP doit être inséré ici !
?>
<tr><td></td><td></td><td>Total H.T.</td><td></td></tr>
<tr><td></td><td></td><td>T.V.A.</td><td></td></tr>
<tr><td></td><td></td><td>Total T.T.C.</td><td></td></tr>
</table>
</body>
</html>
3
- On veut obtenir un affichage d’une table de commande avec ”$lignes=7;” soit sept lignes de commande.
- Le résultat souhaité est donné ci-dessous. Il faut deux versions différentes utilisant une boucle ”for” :
a) La première version est une table de commande
simple.
1
2
<?php
$lignes=7;
b) La seconde version est une table de commande
avec une ligne sur deux en gris, c’est-à-dire qu’il faut
ajouter un style au début de la ligne <tr> qui doit devenir <tr style=”background-color: #ccc;”> lorsqu’on est
sur une ligne paire.
1
2
3
3
4
4
5
5
6
6
7
7
8
8
9
9
10
10
11
11
12
12
13
13
14
14
15
15
16
16
17
17
18
18
19
19
20
20
21
21
22
22
23
23
24
24
25
25
26
27
<?php
$lignes=7;
26
?>
27
4
?>