Vous êtes sur la page 1sur 8

Pratique de MySQL et PHP

http ://www.lamsade.dauphine.fr/rigaux/mysqlphp

Exercices Programmation Web

Philippe Rigaux

Table des matires


1 2 3 4 5 6 Mise en place de lenvironnement (Dauphine) HTML Formulaires et appels de programmes Programmation PHP SQL Programmation PHP/MySQL 2 2 4 4 6 7

1 Mise en place de lenvironnement (Dauphine)


Ces instructions sadressent aux tudiants de Dauphine. Vous devez avoir votre login et votre mot de passe pour les machines du CRIO Unix. Connectezvous sous votre compte Linux et suivez les instructions suivantes : 1. Crez un sous-rpertoire site avec la commande
mkdir site

2. Donnez les droits daccs en lecture et en excution au rpertoire site et au rpertoire daccueil :
cd chmod a+rx . chmod a+rx site

3. Lancez un diteur de texte (par exemple kate) et crez un chier essai.html dans le rpertoire site. Placez dans ce chier le contenu suivant (remplacez login par votre nom) :
<HTML> <BODY> Je mappelle *login* </BODY> </HTML>

4. Lancez un navigateur Firefox et accdez lURL suivante (remplacez login par votre nom)
http://criounix.etud.dauphine.fr/~login/essai.html

Le document devrait safcher. Vous tes prt(e) commencer les exercices !

2 HTML
Pour commencer, allez sur le site et rcuprez le chier exemples.tar. Cest une archive que vous pouvez dcompresser avec a commande :
tar xvf exemples.tar

Installez les exemples dans votre rpertoire et testez-les. Puis ditez ces chiers et faites diverses modications pour en constater les effets. Exercice 2.1 Crez une page HTML donnant votre tat civil (nom, prnom, date de naissance, etc) et la liste des cours auxquels vous tes inscrit(e). Exercice 2.2 Reprenez la page prcdente, et associez chaque cours que vous suivez ladresse de son site web (si un tel site existe, mais cest le cas pour au moins un des cours). Exercice 2.3 Mme exercice que prcdemment, mais au lieu dafcher une liste des cours, prsentezles sous forme de tableau. Exercice 2.4 Maintenant crz une page cours-web.html qui va vous permettre dorganiser tous les documents que vous crez comme solution aux exercices du cours. Cette page doit tre prsente de la manire suivante :
Philippe Rigaux (rigaux@lri.fr), Exercices Programmation Web

3 1. Un en-tte avec le titre du cours, un lien vers sa page Web, un lien vers le polycopi des exercices. 2. Un tableau principal avec une ligne pour chaque sance de TP ; dans chaque ligne deux cellules : la premire avec la date et le sujet de la sance, la seconde avec la liste des exercices. 3. La seconde cellule doit contenir un tableau imbriqu, avec une ligne pour chaque exercice effectu pendant la sance, et un lien vers le document constituant votre solution cet exercice. Avec ce document, il devrait tre possible de consulter trs rapidement la liste des solutions. Exercice 2.5 Reprenez lexemple de la feuille de style CSS vue en cours et donne dans le polycopi. Appliquez-la au tableau des exercices. Faites en sorte quil y ait une alternance des couleurs dune ligne lautre. Exercice 2.6 Maintenant transformez la feuille de style selon votre got, mais avec au moins les mises en forme suivantes. les enttes (Hn) doivent tre en italiques et centrs ; la ligne prsentant les enttes dune table devrait prsenter le texte en blanc sur un fond color ; Si ncessaire recherchez des informations complmentaires sur le Web. Utilisez ce style dans toutes les pages de votre site. Exercice 2.7 Il est possible des crer des ancres internes une page avec la balise suivante :
<a name=ancre-interne>

Lemplacement o se trouve cette balise peut ensuite tre rfrenc par son nom prcd dun #. Par exemple :
<a href=#ancre-interne>

On va se servir de ce mcanisme pour se dplacer rapidement au sein dune mme page HTML. Dans le document prsentant la liste de vos exercices, commencez par associer une ancre interne chaque sance prsente dans le tableau. Au dbut du document, ajoutez ensuite un index, sous forme dune liste de lien pointant vers les diffrentes sances. Vous pouvez avoir un exemple de ce type dindex sur la page du laboratoire, L AMSADE (voir le site www.lamsade.dauphine.fr), choix Members. Chaque lettre de laphabet rfrence les personnes dont le nom commence par cette lettre. Exercice 2.8 Crez votre site personnel en HTML. Il doit comprendre (au moins) : 1. Une page daccueil vous prsentant et donnant des liens vers les autres pages. 2. Une page donnant la liste des cours auxquels vous tes inscrits, avec les liens correspondant. 3. vos hobbies : sites, livres, disques, lms prfrs, avec les liens vers les URL. Prsentez ce site comme vous le souhaitez, en vous inspirant au besoin des exemples que vous pouvez trouver absolument partout sur le Web. Exercice 2.9 Cet exercice est un peu plus long et demande une recherche personnelle sur le Web. Il consiste utiliser les frame HTML. Les frames permettent de crer une page sous la forme de parties indpendantes les unes des autres. Par exemple une partie peut correspondre au logo, une autre la barre de navigation, etc. Le site du L AMSADE, prcdemment cit, utilise les frames. Recherchez sur le Web la syntaxe de cration des frames, et organisez votre site personnel avec ce mcanisme.
Philippe Rigaux (rigaux@lri.fr), Exercices Programmation Web

3 Formulaires et appels de programmes


Le but des exercices qui suivent est de vous entraner la cration de formulaires et plus gnralement au passage de paramtres un programme Web. Vous pouvez utiliser le programme HTTP.php qui afche tous les paramtres reus. Il est conseill de rcuprer les exemples donns en cours et de les tester avant de se lancer. Exercice 3.1 Crez un formulaire permettant de saisir vos prnom, nom et anne de naissance. Transmettez ces donnes au programme HTTP.php. Exercice 3.2 Crez un formulaire QCM proposant un ensemble de questions avec, pour chacune, une liste de rponses possibles (utilisez les boutons RADIO). Exercice 3.3 Crez un formulaire Calculatrice permettant de saisir deux chiffres et de leur appliquer une des oprations arithmtiques proposes dans un champ SELECT. Exercice 3.4 Crez un formulaire Photo permettant de transmettre un chier image et sa lgende (un texte accompagnant la photo). Exercice 3.5 Crez un formulaire tat civil permettant de saisir les donnes sur ltat civil dune personne (nom, prnom, sexe, date de naissance, adresse). Organisez le formulaire laide dun tableau de manire ce que les champs soient rgulirement aligns.

4 Programmation PHP
Exercice 4.1 Crez les exemples SERVER.php, GET.php et Bonjour.php donns dans les transparents du cours, et testez-les. Exercice 4.2 crivez un script PHP qui afche, sous forme de tableau HTML, les valeurs des principales variables CGI (ces variables sont dans le tableau PHP $_SERVER). Crez un formulaire qui permet de saisir le nom de la variable CGI afcher. Rcuprez le nom de cette variable dans le script PHP, et afchez sa valeur. Par exemple, je dois pouvoir demander lafchage de la variable HTTP_USER_AGENT. Exercice 4.3 (Conversion Euro) crivez une paire formulaire/script PHP qui permette de convertir des Francs en Euros. 1. Crez le formulaire qui permet de saisir la valeur en francs. 2. Crez le script qui rcupre la valeur saisie, et afche la conversion en Euro (NB : un euro = 6,56 Frs). 3. Amliorez le script pour permettre linternaute dindiquer si la valeur saisie est en francs ou en euro, et tenez en compte dans le script pour appliquer la conversion correspondante. Exercice 4.4 Le chier films.txt est disponible sur le site. crivez et testez le script suivant, qui afche le contenu du chier.

Philippe Rigaux (rigaux@lri.fr), Exercices Programmation Web

<HTML><HEAD> <TITLE>Accs un fichier</TITLE> </HEAD><BODY BGCOLOR=white> <?php $films = fopen ("films.txt", "r"); while ($ligne = fgets($films, 256)) { $tab = explode (" ", $ligne); echo $tab[0] . " " . $tab[1] . " " . $tab[2]. "<BR>"; } ?> </BODY></HTML>

Exercice 4.5 Effectuez les transformations suivantes sur le script prcdent : 1. Remplacez lafchage des lments du tableau par une boucle (il y a cinq lments dans le tableau). 2. Dnissez une constante pour le nombre dlments du tablau au lieu dutiliser la valeur 5 en dur. 3. Afchez seulement les lms parus aprs 1970. 4. Passez une variable au script donnant lanne minimale des lms afcher. Essayez les deux versions suivantes : (a) passez cette variable dans lURL ; (b) passez cette variable partir dun formulaire. Exercice 4.6 Crez une petite calculatrice permettant deffectuer des oprations arithmtiques lmentaires (addition, soustraction, multiplication et division) sur deux oprandes. 1. Premire version : afchez un formulaire permettant, dans lordre, de saisir la premire oprande, puis de slectionner lopration parmi une liste (champ SELECT), enn de saisir la seconde oprande. Associez ce formulaire le script effectuant le calcul et afchant le rsultat. 2. Remplacez le champ SELECT par des champs RADIO. 3. Vriez quon ne peut pas faire de division par 0. 4. Deuxime version : aprs un calcul, rafchez un formulaire en proposant comme valeur par dfaut de la premire oprande le rsultat du calcul prcdent. Exercice 4.7 Faites un formulaire proposant un menu compos : dune liste dentres ; dune liste de plats ; dune liste de desserts ; Associez un prix chaque entre, plat ou dessert. Un internaute doit pouvoir choisir une entre, un plat et un dessert, et valider son choix. Afchez alors le menu choisi, ainsi que laddition ! Prsentez ensuite les choix de menu en les alignant laide dun tableau HTML. Les exercices qui suivent visent crire des fonctions PHP et les utiliser. Premire chose faire : rcuprer le code des exemples donns en cours sur laccs un chier des lms, et installez-le dans votre environnement.
Philippe Rigaux (rigaux@lri.fr), Exercices Programmation Web

6 Exercice 4.8 Reprendre la fonction Tableau vue en cours, et modiez-l pour ajouter la possibilit dafcher un entte chaque colonne. Il faut donc passer un tableau PHP contenant les enttes afcher, et inclure une premire ligne dans le contenu du tableau avec les enttes (balise <TH>). Exercice 4.9 Faire une fonction Liste identique Tableau, mais pour produire une liste HTML. Le tableau en entre doit tre unidimensionnel. Exercice 4.10 crivez une fonction EnteteHTML() destine produire le dbut dun document HTML, avec la partie HEAD et un texte centr en haut de la page. La fonction doit prendre en argument le titre et le texte placer en haut de la page. Faites de mme une fonction PiedDePage(). Appelez ces fonctions au dbut et la n de toutes vos pages.

5 SQL
Pour les exercices SQL, vous crerez un document HTML prsentant les solutions des exercices demands, que vous intgrerez votre site de solutions. Exercice 5.1 Pour ce premier exercice, vous allez vous entraner effectuer des recherches SQL sur une base existante. Elle se trouve sur le site suivant : http ://www.lamsade.dauphine.fr/rigaux/bd Choisissez loption SQL en ligne. Lisez attentivement les instructions. La fentre de droite vous permet de saisir une requte SQL et de lexcuter. Le rsultat (ou le message derreur ventuel) safche dans la fentre principale. La base est disponible sur le site et contient un chantillon de lms avec leur metteur en scne, leurs acteurs et les notations de quelques internautes. vous de jouer : il faut concevoir, saisir et excuter les ordres SQL correspondant aux requtes qui suivent. 1. Tous les titres de lms. 2. Nom et prnom des internautes auvergnats. 3. Titre et anne de tous les drames, tris par anne ascendante. Donnez ensuite le tri par anne descendante. 4. Nom et anne de naissance des artistes ns avant 1950. 5. Titre et anne de tous les lms parus entre 1960 et 1980 6. Tous les genres de lms (liminez les doublons). 7. Titre, genre et rsum des lms qui sont soit des drames, soit des westerns (utilisez la construction IN ou loprateur OR), et dont le rsum contient la chane de caractres vie . 8. Les artistes dont le nom commence par H (commande LIKE). 9. Quels sont les acteurs dont on ignore lanne de naissance ? (Attention : cela signie que la valeur est absente). 10. Prnom, nom et ge de chaque artiste (NB : lge est la diffrence entre lanne courante et lanne de naissance). Nommez ge la colonne obtenue (commande AS). Exercice 5.2 Il sagit de dnir un schma de base de donnes, et dy insrer quelques informations.
Philippe Rigaux (rigaux@lri.fr), Exercices Programmation Web

7 1. Tout dabord crez les tables du schma Agence de voyages donn ci-dessous. Les attributs en gras sont les cls primaires. Choisissez les types de donnes qui vous semblent adapts. Station (nomStation, capacit, lieu, rgion, tarif) Activite (nomStation, libell, prix) Client (id, nom, prnom, ville, rgion, solde) Sejour (id, station, dbut, nbPlaces) 2. Ensuite insrez dans la base les donnes de la gure 1 avec des ordres INSERT. 3. Finalement testez avec quelques requtes SQL que la base est bien interrogeable. Par exemple recherchez les clients qui habitent en Europe. Trouvez 4 requtes sur vos tables. Station Capacit Lieu 350 Guadeloupe Activite NomStation Libell Venusa Voile Venusa Plonge Client prnom ville Phileas Londres Blaise Paris Jack New York Sejour station dbut Venusa 03-08-2003

NomStation Venusa

Rgion Antilles

Tarif 1200

Prix 150 120

id 10 20 30

nom Fogg Pascal Kerouac

rgion Europe Europe Amrique

solde 12465 6763 9812

idClient 20

nbPlaces 4

F IG . 1 La base Agence

6 Programmation PHP/MySQL
Avant de commencer ces exercices, il est conseill de faire fonctionner les trois exemples vus en cours. Au pralable il faut : 1. Crer dans votre base la table FilmSimple avec le script FilmSimple.sql fourni parmi les exemples du site. 2. Chargez dans cette table le contenu du chier lms.txt avec les commandes du chier InsFilmSimple.sql (sur le site). Faites alors tourner le script ExMyPHP1.php fourni avec les exemples. Noubliez pas de changer le nom du serveur, de la base, et de lutilisateur dans le chier Connect.php. Faites de mme avec ExMyPHP2.php (associ au formulaire ExForm2.html) et ExMyPHP3.php (associ au formulaire ExForm.html).
Philippe Rigaux (rigaux@lri.fr), Exercices Programmation Web

8 Exercice 6.1 Dans ce premier exercice, on va crer une petite application pour tester la connexion PHP/MySQL. 1. Crez un formulaire permettant de saisir le nom du serveur, le login, le mot de passe, le nom de la base ; 2. Sur validation de ce formulaire, excutez un script TestConnect.php qui rcupre les donnes saisies par lutilisateur, tente de se connecter MySQL et afche un message indiquant si la connexion a chou ou russi. Exercice 6.2 Maintenant on va crer des pages HTML dynamiques sur les tables dcrivant des stations de vacances et leurs clients. 1. Afcher une page HTML avec la liste des stations, prsentes dans un tableau HTML. 2. Faire un formulaire permettant de choisir le nom dune station, ou bien une rgion dans laquelle on souhaite partir en vacances. Sur validation de ce formulaire, afcher la liste des stations correspondant aux critres saisis. 3. Prsenter une page avec une liste HTML comprenant une entre pour chaque station, et un tableau donnant la liste des activits de la station (aide : il faut faire deux boucles imbriques, une sur les stations, lautre sur les activits dune station ; chaque boucle correspond une requte SQL). Exercice 6.3 (Compteur) Objectif : crire un script PHP qui prend en paramtre le nom dune page, et renvoie la valeur dun compteur des accs cette page. La fonction doit : 1. Se connecter MySQL. 2. Rechercher dans une table que vous avez cre la valeur du compteur pour la page passe en paramtre. 3. Si la ligne avec le nom de la page nexiste pas : la crer et initialiser le compteur. 4. Sinon incrmenter le compteur. Utilisez la fonction dans une ou deux pages pour montrer que a marche !

Philippe Rigaux (rigaux@lri.fr), Exercices Programmation Web

Vous aimerez peut-être aussi