Technologies de l'Internet dynamique
Examen du 14/03/2005

Cet examen dure 2h, attention à la gestion de votre temps ! Tous les documents papiers sont autorisés.

 XHTML (/3) 

 Écriture de code XHTML 

Donnez le code XHTML permettant de décrire la structure suivante :

mousse au cocolat sélectionnez une recette :
Ingrédients :
  • 200g de chocolat noir
  • 6 oeufs
Recette :
  1. Monter les blancs en neige et réserver au frais
  2. Mélanger les jaunes d'oeuf et le chocolat fondu
  3. Incorporer délicatement les blancs
  4. Faire prendre la mousse au frigo durant 4h

Pour information, le tableau doit occuper 8/10ème de la largeur de la page web mais les largeurs de colonnes ne sont pas spécifiées. En revanche, la largeur de l'image est fixée à 100 pixels et son infobulle est le nom de la recette affichée.
D'autre part, les autres recettes disponibles sur ce site de recettes de desserts pour enfants sont le gâteau quatre quarts, la pâte à crèpes et le milk-shake banane.
attention ! Attention aux accents !

 Validation de code XHTML 

Corrigez le code ci-dessous afin qu'il soit valide XHTML 1.1 :

<ul><li><A href="paul.html">page de <cite>Paul</a></cite></li>
<li><img src="paul.jpg" width=20></ul>

 Javascript (/3) 

 Permettre le changement dynamique de la recette 

Comment faut-il modifier le code XHTML du site de recettes pour pouvoir modifier dynamiquement les informations relatives à la recette sélectionnée ?

attention ! Il ne faut pas ré-écrire le code permettant de réaliser ce traitement mais simplement décrire succintement les balises et arguments qu'il faut ajouter pour rendre possible ces modifications interactives.

 Choix du milk-shake banane 

On suppose ici que l'on a à disposition un fichier milkshape.js contenant deux fonctions MS_Ingredients() et MS_Recette() qui renvoient chacune une chaîne de caractères contenant le code XHTML décrivant la liste d'ingrédients et la recette du milk-shake banane. Ce fichier contient aussi une fonction MS_Image() qui renvoit l'adresse de l'image associée à cette recette.
On suppose que l'on possède également un fichier standards.js qui contient la fonction findObj(id) vue en cours.

Donnez toutes les lignes de code qu'il faut ajouter à la partie head du document XHTML pour pouvoir remplacer tous les éléments relatifs à la recette actuelle par ceux de la recette du milk-shake banane.

 PHP (/4) 

 Création d'une bibliographie 

On se place ici dans le cadre de la création dynamique d'une bibliographie. On suppose que l'on a obtenu avec une requête dans une base de données MySQL un tableau nommé biblio dont les éléments sont des tableaux associatifs de clefs auteurs (tableau des noms des auteurs), titre (titre de l'ouvrage), editeur (éditeur de l'ouvrage) et date (année de parution).
Écrivez le script PHP permettant d'afficher la bibliographie sous la forme d'une liste de ce type :

  • auteur1, ..., auteurN<br />
    titre<br />
    editeur<br />
    date

Rappelons que count($tab) renvoit la taille du tableau $tab.

 Tris des ouvrages d'une année choisie 

On souhaite désormais permettre à l'internaute de choisir l'année des ouvrages qui l'intéressent et de modifier l'apparence de la liste de ces ouvrages en la triant par noms d'auteurs ou par éditeurs.

Comment procéder en gérant au mieux les qualités et les contraintes de XHTML, JavaScript et PHP ?
Commencez par expliquer ce que doit être le résultat optimal selon-vous (répartition des rôles et succesion des événements).
Détaillez ensuite les structures et fonctions qu'il faudrait manipuler pour obtenir ce résultat optimal et comment les différents langages (ne) communiquent (pas) entre eux.

 Questions de cours (/3) 

Répondez en quelques lignes aux questions suivantes :

  • Quels sont les rôles des langages (X)HTML, CSS, JavaScript et PHP ?
  • En quoi JavaScript souffre-t-il du non respect des normes HTML et XHTML par les navigateurs ?
  • A quoi servent les cookies ? A quoi ne doivent-ils pas servir ? Explicitez les risques.
  • Quels sont les avantages pour le webmestre et pour l'internaute de séparer le contenu et la mise en forme des documents ?