Vous êtes sur la page 1sur 5

Master Miage M1

EXAMEN Session de juin 2009

Code du module : C216 Intitul du module : Architecture client-serveur Nom de lenseignant : Nicolas Royackkers

Dure de lpreuve : 2 heures Note : lusage de documents papier est interdit ; l'usage d'une calculatrice est autoris ; lusage de tout autre matriel lectronique est interdit Nombre de pages : 5

1. Les bases a) En quelques lignes, expliquer la diffrence entre un site Web statique et un site Web dynamique. b) Qu'est-ce que HTTP ? c) Qu'est-ce que Apache ? d) Qu'est-ce que phpMyAdmin ? 2. PHP Dans une page XHTML, on trouve le code PHP suivant :
<?php $t[1] = array( 4=>'n', 2=>'p', 0=>'r', 3=>'o', 6=>'e', 5=>'s', 1=>''); $t[0] = array( 4=>'n', 1=>'b', 0=>'', 3=>'n', 2=>'o', 5=>'e', 6=>''); echo "<table border=\"1\" cellpadding=\"5\">\n"; for ($li = 0; $li <= 1; $li++) { echo "<tr>\n"; $co = 0; while ($co < max(count($t[0]), count($t[1]))) { echo " <td> ".htmlspecialchars($t[$li][$co])." </td>\n"; $co++; } echo "</tr>\n"; } echo "</table>\n"; ?>

Note : la fonction max( ) renvoie la valeur maximale parmi les valeurs passes en argument. 1/5

a) Recopier et commenter ce code. b) Que va afficher ce programme PHP quand la page Web qui le contient sera charge dans un navigateur ?

3. SQL Sur la machine localhost , on dispose d'un serveur MySQL et d'un accs une base de donnes relationnelle appele exercices , grce l'identifiant script_php et au mot de passe 9kF4aG . Cette base contient trois tables : editeur (id_editeur*, nom) auteur (id_auteur*, nom, prenom) livre (id_livre*, id_auteur, id_editeur, titre, date_publication) Voici le contenu de ces tables : editeur id_editeur 1 2 3 4 5 nom ENI Eyrolles O'Reilly Micro Application Pearson Education

auteur id_auteur 1 2 3 4 5 6 7 8 9 nom Daspet Heurtel Sklar Bois Thibaud Pirio Brouard Soutou Beighley prenom Eric Olivier David Franois-Xavier Cyril Mikal Frdric Christian Lynn

2/5

livre id_livre id_auteur id_editeur 1 2 3 4 5 6 7 8 9 10 2 1 3 3 4 6 5 7 8 9 1 2 3 3 4 1 1 5 2 3 titre date_publication PHP 5.2 - Dvelopper un site Web dynamique 2007-11-12 et interactif PHP 5 avanc 2008-10-23 Introduction PHP 5 2004-10-21 PHP en action 2008-04-25 PHP 5 & MySQL 5 : Crez votre site web dy2007-09-27 namique de A Z Apache (version 2) : Installation, administra2004-05-13 tion et scurisation MySQL 5 : Installation, mise en oeuvre, ad2006-02-01 ministration et programmation SQL 2008-05-23 Apprendre SQL avec MySQL : Avec 40 exer2006-03-23 cices corrigs SQL "Tte la premire" 2007-12-06

Dans un premier temps, on se met la place du systme de gestion de base de donnes pour interprter des requtes SQL. Donner le tableau rsultat de chacune des requtes suivantes : a) SELECT * FROM editeur ; b) SELECT nom AS 'Editeur' FROM editeur ORDER BY nom DESC ; c) SELECT titre FROM livre WHERE YEAR(date_publication) BETWEEN 2003 AND 2005 ; d) SELECT auteur.nom AS 'Auteur' FROM auteur, livre WHERE auteur.id_auteur = livre.id_auteur AND YEAR(date_publication) = 2006 ; e) SELECT titre AS 'Titre', auteur.nom AS 'Auteur' FROM livre, auteur, editeur WHERE livre.id_auteur = auteur.id_auteur AND livre.id_editeur = editeur.id_editeur AND editeur.nom LIKE 'Eyrolles' ;

Il s'agit maintenant d'crire les requtes SQL permettant de raliser des tches formules en langage naturel : f) Slectionner toutes les informations concernant les auteurs. g) Slectionner le prnom de tous les auteurs, avec classement par ordre alphabtique sur leur nom. h) Slectionner le nom d'auteur et le nom de l'diteur de tous les auteurs. i) Slectionner tous les titres des livres publis par l'diteur O'Reilly.

3/5

j) Slectionner le prnom et le nom de tous les auteurs qui ont publi un livre en 2007 et dont le nom de l'diteur commence par la lettre E .

4. PHP et SQL Un site marchand propose aux internautes de s'abonner une newsletter leur permettant d'tre tenu inform par courrier lectronique des nouveauts et des promotions de la boutique en ligne. Voici le code XHTML de la page d'inscription :

<?xml version="1.0" encoding="iso-8859-15"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr"> <head> <title>Inscription newsletter</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15" /> </head> <body> <h2>Inscription la newsletter</h2> <form method="post" action="traitement.php"> <p> <label> Votre adresse lectronique </label> <input type="text" name="mail" value="" /> <input type="submit" name="envoi" value="Envoyer" /> </p> </form> </body> </html>

a) Comment cette page sera-t-elle affiche dans un navigateur ? Dessiner tous les lments prsents l'cran (hors barre de titre). b) Donner le code du fichier traitement.php qui, aprs actionnement du bouton du formulaire, va afficher une nouvelle page en adoptant le comportement suivant : Si rien n'a t saisi dans le formulaire (chane de caractres vide), la page affiche le message Veuillez saisir votre adresse lectronique, SVP . Si, au contraire, une adresse a t saisie dans le formulaire (chane de caractres non vide) : o le programme se connecte la base de donnes MySQL nomme exercices sur la machine localhost , grce l'identifiant script_php et au mot de passe 9kF4aG . Cette base contient une table ainsi dfinie : adresse_mail (id_mail*, mail) La colonne id_mail (cl primaire) est de type INT(11) et possde l'attribut AUTO_INCREMENT. La colonne mail est de type VARCHAR(50). 4/5

o Si l'adresse lectronique saisie dans le formulaire est dj prsente dans la table adresse_mail, la page affiche le message Cette adresse est dj enregistre dans la base . o Si, au contraire, l'adresse lectronique saisie dans le formulaire n'a pas t trouve dans la base, le programme procde son enregistrement dans la table adresse_mail et affiche le message Votre adresse a bien t enregistre .

5/5