Application Client/Serveur BD/Web
Contrôle – Durée 1h30 – Tout document autorisé

1. Déterminer tous les cas qui peuvent nécessiter de recharger une page sur un navigateur

2. Expliquer pourquoi l’adresse IP de l’ordinateur client n’est pas suffisante pour identifier de manière unique d’un internaute. De quelles solutions dispose-t-on pour pouvoir suivre un internaute au cours de sa visite sur les différentes pages d’un site WEB ?

3. Considérons le script PHP donné dans le cadre suivant :

<HTML><HEAD></HEAD><BODY>
<?
mysql_connect("db.jura-france.net", "francois", "wx48z");

function affiche($id) {
	$req = mysql_db_query("jura-france", "select pere, noeud from classification where id=".$id);
	$res=mysql_fetch_array($req))
	if ($res["pere"]<>$id)  { affiche($res["pere"]);}
	echo " / <A HREF='liste.php?id=".$id."'>". $res["noeud"] ;
	echo "<HR>"
	$req = mysql_db_query("jura-france", "select id,noeud from classification where pere=".$id);
	while ($res=mysql_fetch_array($req)) {
		echo "<A HREF='liste.php?id=". $res["id"] . "'>". $res["neoud"]."</A><BR>";}
}

affiche($id);

?>
</TABLE></BODY></HEAD>

3.1 Expliquez rapidement mais précisément ce que représentent dans ce script les chaînes de
caractères "db.jura-france.net", "francois", "wx48z", "jura-france", "classification", "pere", "noeud".
3.2 Expliquez ce que réalise ce script
3.3 Représentez graphiquement ce qu’afficherait ce script dans un navigateur.
3.4 Ecrire une page saisie.htm permettant de saisir les informations noeud et pere dans un formulaire; En cliquant sur un bouton, ce formulaire sera soumis à une page saisie.php qui verifiera que l'identifiant du pere existe et dans ce cas insérera le nouveau noeud dans la classification.

4 Expliquez ce que réalise le script suivant :

<img name="p1" src="/images/pictos/m1jpg">
<img name="p2" src="/images/pictos/m2pg">
<img name="p3" src="/images/pictos/m3jpg">

<SCRIPT LANGUAGE="JavaScript">
var a=0;
var a1,a2,a3;
var nb_images=17;

function hasard(image){
do {x=Math.floor(Math.random()*nb_images+1);} while ((x==a1) || (x==a2) || (x==a3));
image.src='/images/pictos/m'+x+'.jpg';
return x;
}

function anim(){
switch(a) {
	case 0: {a1=hasard(p1);break;}
	case 1 :{a2=hasard(p2);break;}
	case 2: {a3=hasard(p3);break;}
	}
a=(a+1)%3;
window.setTimeout('anim()', 1000);
}
</script>