5
Master Miage M1 EXAMEN Session de juin 2009 Code du module : C216 Intitulé du module : Architecture client-serveur Nom 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. Le s bases a) En quel ques li gnes, expl iquer la di ff érence entr e un sit e Web sta ti que et un sit e 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

C216-2009.06

Embed Size (px)

Citation preview

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