Académique Documents
Professionnel Documents
Culture Documents
Quand c’est fait, effacez le code HTML correspondant au tableau d’images et essayez de le générer de nouveau
à l’aide d’un code PHP : dans un premier temps, cherchez à afficher toutes les images, à l’aide d’une seule
boucle for, toutes alignées à la suite des autres. Quand cela marche, faites en sorte que toutes les trois images
on passe à la ligne (cela peut se faire à l’aide de la balise <br>). Enfin, quand cela marche, faites l’affichage à
l’aide de deux boucles for imbriquées (l’une pour les lignes, l’autre pour les colonnes), en enlevant les balises
<br> et en utilisant un tableau (balises <table>, trr>, et <td>.
5. (facultatif, à faire si vous êtes en avance) Écrivez un script qui affiche à l’écran tous les nombres de
Fibonacci plus petits que 6765. Les deux premiers nombres de Fibonacci sont 0 et 1, et chaque numéro de la
suite de Fibonacci s’obtient en faisant la somme des deux numéros antérieurs (le troisième nombre de Fibonacci
est donc 0+1 soit 1 ; le quatrième, 1+1, etc...).
6. Refaites le même exercice, mais en utilisant une structure do {...} while ( ...) au lieu d’une structure
while(...){ ...}. Quelle est la différence entre ces deux structures ?
Exercice 4 - fonctions
1. Emilie, qui travaille chez un FAI, doit créer un fichier où elle doit mettre, les uns à la suite des autres (un
mail est séparé du suivant par deux tirets bas consécutifs) tous les mails de bienvenue à envoyer aux nouveaux
clients. Or tous ces mails sont presque identiques : ”Monsieur UnTel, nous avons le plaisir de confirmer que vous
êtes à présent bien inscrit chez nous. Vous découvrirez bien vite l’attention que nous réservons à nos clients etc
etc...”. Seul le mot ”Monsieur” change si le destinataire est une femme (pour le mot ”Madame”, donc...) ainsi
M M I1 TDs de PHP programmation PHP
que le nom du destinataire. Or pour l’instant, Emilie fait tout manuellement : elle copie-colle un mail et change
à la main le premier mot si nécessaire ainsi que le nom. Mais cela s’avère assez fastidieux... Proposez-lui un
script PHP qui lui simplifie un peu la tache en utilisant une fonction !
2. Soit la fonction mystere :
function mystere($n){
$val=1;
for ($i=1;$i<=$n;$i++)
$val*=$i;
return $val;
}
Simulez le fonctionnement de cette fonction lorsqu’on lui passe la valeur 4 en argument. Quel sera le résultat
affiché ? Que fait cette fonction ? Pouvez-vous en écrire une version récursive ?
3. Écrivez une fonction somme($n) qui fait la somme des n premiers chiffres. Ainsi, somme(3) doit retourner 6,
somme(4) doit retourner 10, etc... Testez votre fonction. Simulez sur papier son fonctionnement lorsqu’on lui
rentre le paramètre d’entrée 4.
Exercice 5 - dates
1. Il vous faudra là consulter la documentation officielle pour voir comment fonctionne la fonction date. Le but
est d’afficher dans une page web la date d’aujourd’hui, sous le format suivant :
Nous sommes le 5/09/2008;
il est 14:12:18+
2. Faites une fonction prenant en argument une année $annee et retournant true si l’année est bissextile, false
sinon.
Il existe sur le web des packages complets pour Windows ou Mac, qui permettent d’ins- taller en une seule opération
tous les éléments constituant un serveur local (serveur web Apache, interpréteur de code PHP, base de données MySQL
5, phpMyAdmin...).
1. Sur windows, télécharger et installer le package WAMP5 1.6.4a disponible sur http ://www.wampserver.com
dans le dossier C :/wamp5 par exemple. Tous les scripts devront alors être enregistrés dans le sous-dossier www,
dans lequel vous pourrez créer plusieurs sous-dossiers correspondant à vos différents sites. Lors du redémarrage
du serveur, ils apparaîtront dans la rubrique Vos projets de la page d’accueil de Wampserveur.
2. Sous Mac OS X, le logiciel Apache 1.3 est déjà installé par défaut. Pour démarrer le serveur, il suffit d’activer le
service Partage Web personnel dans la rubrique Partage des Préférences Système. Le module PHP correspondant
au serveur web Apache inclus dans Mac OS X est téléchargeable sur http ://www.entropy.ch/software/macosx/php
Il vous suffit alors de suivre les instructions d’installation du package PHP 5.1.4 pour Apache 1.3.
Exercice 6 - tableaux
1. Jean a 20 ans, Jacques en a 30, Pierre 25. Faites un tableau $age, dont les indices sont les prénoms, qui permette
de mémoriser ces informations. Affichez l’âge de Pierre à l’aide du tableau.
2. Faites un tableau qui associe à des noms de fruits le nombre de calories correspondant. Ensuite, faites une
fonction qui parcourt votre tableau de fruits et qui en sortie affiche le nom du fruit le plus calorifique.
3. Faites une fonction qui prend en entrée une phrase et qui indique en sortie quel est le i-ème mot de cette phrase.
On utilisera la fonction explode() dont vous regarderez le fonctionnement dans la documentation officielle.
4. On veut maintenant créer un tableau $identite dont chaque ligne contienne l’identité d’une personne : son
âge, son prénom, et son nom. Les indices du tableau seront ”Personne 1”, ”Personne 2”, ”Personne 3”. On opte
pour la méthode suivante :
$identite=array(
"personne 1"=> array("nom" => "dutronc", "prenom"=>"michel", "age"=>"30"),
"personne 2"=> array("nom" => "duroc", "prenom"=>"émilie", "age"=>"23"),
"personne 3"=> array("nom" => "dupersil", "prenom"=>"évelyne", "age"=>"36"));
(a) Rajoutez dans ce tableau une 4ème personne, Etienne Duvillage, 48 ans.
M M I1 TDs de PHP programmation PHP
(b) Faites ensuite afficher à l’écran tous les noms, et seulement les noms, des personnes présentes dans le tableau.
5. (a) Jean a fait ses courses et décide de mémoriser ses achats informatiquement. Il décide de stocker tous les
produits qu’il a acheté dans un tableau, en PHP. Créez le tableau chariot qui contient les produits suivants :
chocolat, poulet, citrons, oignons (ainsi, $chariot[0] vaut ”chocolat”).
(b) Rajouter du curry dans le tableau chariot.
(c) Jean relève le contenu d’un chariot chaque mois. Il décide donc d’utiliser un tableau bidimensionnel, de
sorte, par exemple, que $chariot["janvier"] contienne un tableau avec les achats relevés en janvier. Créer
un tel tableau dans lequel sont recensés, en janvier, des poivrons, du jambon et du sel, en février du curry,
du poulet, et des yahourts, et en mars du chocolat, des citrons et des oignons.
(d) Faites une fonction qui prend en entrée un mois et qui permette à Jean de lister ce qu’il avait acheté ce mois.
(e) Faites une fonction qui permette de lister tous les produits achetés depuis le début de l’année.
(f) A la maison : faites une fonction qui calcule la moyenne des nombres d’un tableau de nombre (ce tableau
sera donc passé en paramètre de la fonction).
(g) A la maison : faites une fonction qui calcule le produit de tous les nombres d’un tableau de nombre.
Exercice 7 - Formulaires
1. Faites un formulaire html qui demande un nom (type=”text”), un mot de passe (type=”password”), et qui de-
mande le sexe (type=”checkbox”). Si le mot de passe entré est SRC2 ; faites un script traitement_formulaire.php
qui traite ces données : si le mot de passe est SRC2, il affiche ”bonjour M. X” ou ”bonjour Mme X”, selon la
case cochée, où X est le nom rentré dans le champ du nom.
2. Faites un formulaire de commande de voiture : l’utilisateur rentrera son nom dans une zone de texte, la marque
de la voiture dans une autre zone de texte, puis devra cocher les cases (checkbox) indiquant les options qu’il
choisit parmi :
— Climatisation
— Injection au méthane
— Ventilation des rotules
— alarme
Le script php chargé de traiter ce formulaire devra afficher la phrase, si X est le nom du client et Y la marque
de la voiture qu’il souhaite acheter : ”la voiture de rêve de M. X est une Y avec options :”. Cette phrase sera
suivie d’un tableau html à une colonne résumant les options choisies.
Exercice 8 - Fichiers
1. Faites un script qui propose un formulaire permettant d’ajouter un client (nom, prénom, sexe). Ce formulaire
est à chaque fois reproposé, de sorte que l’on peut ajouter autant de clients que nécessaire. Il s’agit de stocker,
à chaque fois, ces clients dans un fichier clients.txt (une ligne par client).
2. Après avoir entré de la sorte 3 ou 4 clients dans le fichier clients.txt, faites un autre script chargé d’afficher la
liste des noms (et seulement les noms) des clients à l’écran, récupérés dans le fichier clients.txt. On supposera
ici pour simplifier que tous les noms sont écrits en un seul mot. On pourra utiliser explode.
4. Avec HTML5, on peut uploader plusieurs fichiers en même temps. Il faut pour cela que la page soit en
HTML5, que l’input de type file ait un attribut multiple=””, et mettre des crochets derrière son nom :
name = ’’fichier[]’’ par exemple. Dans ce cas, $_FILES[’fichier’][’name’] sera non pas une simple
chaîne de caractère mais un tableau contenant les noms des différents fichiers à uploader. A l’aide de ces
explications, mettez en place un formulaire d’upload multiple et faites-le fonctionner.
Exercice 12 - Sessions
Faites deux pages qui ont chacune un lien l’une vers l’autre. Tant que vous n’êtes pas authentifiés, elles montrent un
formulaire d’authentification (login et mot de passe (SRC2)) à remplir ; dès que l’utilisateur est identifié, le formulaire
n’apparaît plus et à la place on voit la phrase "Bonjour, Dupont", si Dupont est le login rentré dans le formulaire. A la
ligne suivante, ces deux pages indiquent le nombre de clics sur les liens que vous avez fait depuis que vous êtes logués.
M M I1 TDs de PHP programmation PHP
Exercice 13 - Cookies
Créez, à l’aide d’un cookie (cf setcookie()), une page qui affiche le nombre de fois qu’elle a été visitée. Vous
mettrez un bouton "stop" dont le rôle est d’effacer le cookie.