7/28/2019 C216-2009.06
http://slidepdf.com/reader/full/c216-200906 1/5
Master Miage
M1
EXAMEN
Session de juin 2009
Code du module : C216
Intitulé du module : Architecture client-serveurNom de l’enseignant : Nicolas Royackkers
Durée de l’épreuve : 2 heures
Note : l’usage de documents papier est interdit ; l'usage d'une calculatrice est autorisé ; l’usage de
tout autre matériel électronique est interdit
Nombre de pages : 5
1. Les bases
a) En quelques lignes, expliquer la différence 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 passées en argument.
1/5
7/28/2019 C216-2009.06
http://slidepdf.com/reader/full/c216-200906 2/5
a) Recopier et commenter ce code.
b) Que va afficher ce programme PHP quand la page Web qui le contient sera chargée dans un
navigateur ?
3. SQL
Sur la machine « localhost », on dispose d'un serveur MySQL et d'un accès à une base de
données relationnelle appelée « exercices », grâce à 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 nom
1 ENI
2 Eyrolles
3 O'Reilly
4 Micro Application
5 Pearson Education
auteur
id_auteur nom prenom
1 Daspet Eric
2 Heurtel Olivier
3 Sklar David
4 Bois François-Xavier
5 Thibaud Cyril
6 Pirio Mikaël
7 Brouard Frédéric
8 Soutou Christian
9 Beighley Lynn
2/5
7/28/2019 C216-2009.06
http://slidepdf.com/reader/full/c216-200906 3/5
livre
id_livre id_auteur id_editeur titre date_publication
1 2 1PHP 5.2 - Développer un site Web dynamique
et interactif 2007-11-12
2 1 2 PHP 5 avancé 2008-10-23
3 3 3 Introduction à PHP 5 2004-10-21
4 3 3 PHP en action 2008-04-25
5 4 4PHP 5 & MySQL 5 : Créez votre site web dy-
namique de A à Z2007-09-27
6 6 1Apache (version 2) : Installation, administra-
tion et sécurisation2004-05-13
7 5 1MySQL 5 : Installation, mise en oeuvre, ad-
ministration et programmation2006-02-01
8 7 5 SQL 2008-05-23
9 8 2Apprendre SQL avec MySQL : Avec 40 exer-
cices corrigés
2006-03-23
10 9 3 SQL "Tête la première" 2007-12-06
Dans un premier temps, on se met à la place du système de gestion de base de données pour
interpréter des requêtes SQL.
Donner le tableau résultat de chacune des requêtes 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 requêtes SQL permettant de réaliser des tâches formulées en
langage naturel :
f) Sélectionner toutes les informations concernant les auteurs.
g) Sélectionner le prénom de tous les auteurs, avec classement par ordre alphabétique sur
leur nom.
h) Sélectionner le nom d'auteur et le nom de l'éditeur de tous les auteurs.
i) Sélectionner tous les titres des livres publiés par l'éditeur O'Reilly.
3/5
7/28/2019 C216-2009.06
http://slidepdf.com/reader/full/c216-200906 4/5
j) Sélectionner le prénom 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 nouveautés 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 affichée dans un navigateur ?
Dessiner tous les éléments présents à l'écran (hors barre de titre).
b) Donner le code du fichier « traitement.php » qui, après actionnement du bouton du formulaire,
va afficher une nouvelle page en adoptant le comportement suivant :
• Si rien n'a été saisi dans le formulaire (chaîne de caractères vide), la page affiche le message
« Veuillez saisir votre adresse électronique, SVP ».
• Si, au contraire, une adresse a été saisie dans le formulaire (chaîne de caractères non vide) :
o le programme se connecte à la base de données MySQL nommée « exercices » sur la
machine « localhost », grâce à l'identifiant « script_php » et au mot de passe
« 9kF4aG ».
Cette base contient une table ainsi définie :
adresse_mail (id_mail*, mail)
La colonne « id_mail » (clé primaire) est de type INT(11) et possède l'attributAUTO_INCREMENT.
La colonne « mail » est de type VARCHAR(50).
4/5
7/28/2019 C216-2009.06
http://slidepdf.com/reader/full/c216-200906 5/5
o Si l'adresse électronique saisie dans le formulaire est déjà présente dans la table
adresse_mail, la page affiche le message « Cette adresse est déjà enregistrée dans la
base ».
o Si, au contraire, l'adresse électronique saisie dans le formulaire n'a pas été trouvée
dans la base, le programme procède à son enregistrement dans la table adresse_mail
et affiche le message « Votre adresse a bien été enregistrée ».
5/5
Recommended