Vous êtes sur la page 1sur 5

ANGD Mathrice : Sites web dynamiques TP - corrig

CIRM Marseille

Ralisation d'un questionnaire d'valuation de la formation

Modlisation conceptuelle
1. Pour commencer, tablir le MPD de l'application conformment au MCD prsent en annexe 3 ?

QUESTIONS ID_QUESTION ORDRE NUMERO QUESTION REPONSEREQUISE TYPE

TYPES_QUESTIONS ID_TYPE NOM

REPONSES_FORMULAIRE ID NOM AFFECTATIONCNRS AUTREAFFECTATION EXISTENCESTAGE CONNAISSANCEEXISTENCE CORPSGRADE

GRADE ID_GRADE NOM_GRADE

REPONSES_NOTE ID_FORMULAIRE ID_QUESTION REPONSE

REPONSES_TEXTE ID_FORMULAIRE ID_QUESTION REPONSE

2. Quelles sont les clefs primaires des tables REPONSES* ? * Pour REPONSES_FORMULARE, la clef est ID. D.Brmont 6 au 10 novembre 2006 1/5

ANGD Mathrice : Sites web dynamiques TP - corrig

CIRM Marseille

* Pour REPONSES_NOTE, la clef est forme de ID_FORMULAIRE et de ID_QUESTION * Pour REPONSES_TEXTE, la clef est forme de ID_FORMULAIRE et de ID_QUESTION

Prise en main du Live CD


1. Commencer par booter sur le Live CD et assurez-vous que le serveur web apache tourne bien en recherchant les processus nomms apache, et en vous connectant l'adresse http://127.0.0.1 l'aide du navigateur firefox. ps aux |grep apache 2. Vrifier que les processus de la base de donnes MySQL sont bien prsents. ps aux |grep mysql 3. Connectez vous l'url d'administration de PHPMyAdmin, soit : http://localhost/phpmyadmin/ login : root Pas de mot de passe

SQL
1. Pour commencer, crer une base de donnes nomme cirm dans MySQL. create database cirm; 2. Crer un utilisateur cirm , mot de passe : cirm disposant de tous les droits sur la base cirm. Comment procdez-vous, avec l'une et l'autre mthode ? create user 'cirm'@'localhost' identified by 'cirm'; grant all privileges on `cirm` . * to 'cirm'@'localhost'; Vrification : use mysql; show tables; select user,host,password from user where user='cirm'; select db,user,host from db where db='cirm'; 3. Pour vous faciliter la ralisation du formulaire, les questions ont t insres dans une base de donnes SQL tlchargeable l'aide de la commande wget l'adresse suivante : wget http://www.lpthe.jussieu.fr/~bremont/cirm/tp/tp.tar.gz 4. Peupler la base de donnes en injectant le contenu du fichier base.sql dans la base. mysql -u cirm -p -D cirm < base.sql 5. Vrifier que les tables ont bien t cres et familiarisez-vous avec leur contenu. show tables; 6. Que font les requtes suivantes : D.Brmont 6 au 10 novembre 2006 2/5

ANGD Mathrice : Sites web dynamiques TP - corrig 1. select * from QUESTIONS where ID_QUESTION=10 ? Affiche toutes les informations de la question numro 10.

CIRM Marseille

2. select count(ID_QUESTION) from QUESTIONS where REPONSEREQUISE='1' ? Combien y a t-il de questions dont la rponse est requise ? 3. select NUMERO, QUESTION, TYPES_QUESTIONS.NOM from QUESTIONS, TYPES_QUESTIONS where QUESTIONS.TYPE=TYPES_QUESTIONS.TYPE order by ORDRE ASC ? Affiche les questions (numro, question et type) par ordre du formulaire 7. crire les requtes SQL permettant de : 1. Afficher tous les grades d'ingnieur ? SELECT NOM_GRADE FROM GRADE WHERE NOM_GRADE LIKE '%Ing&eacute;nieur%' 2. Savoir combien il y a de questions ? select count(ID_QUESTION) from QUESTIONS 3. Savoir quels sont les questions de type radio ? (Ce sont les questions pour lesquelles il faudra donner une note de 1 4 ) select ID_QUESTION from QUESTIONS, TYPES_QUESTIONS where QUESTIONS.TYPE=TYPES_QUESTIONS.TYPE and TYPES_QUESTIONS.NOM='radio'

HTML
1. Pour commencer, il vous est demand de complter le fichier index.php en crivant le code HTML permettant d'obtenir le rendu suivant :
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>QUESTIONNAIRE D'EVALUATION</title> <meta content="text/html; charset=UTF-8" http-equiv="content-type"> <link rel="stylesheet" href="style.css" type="text/css" </head> <body> <img style="width: 207px; height: 99px;" alt="CNRS" src="LogoCNRSMoyenb.gif"><br> <hr><div align="center"> <span class="titrepage">QUESTIONNAIRE D&rsquo;EVALUATION<br> <br> Mathrice<br> <br></span> Outils fondamentaux de demain pour les informaticiens<br> des laboratoires de math&eacute;matiques<br> <br> du 6 au 10 Novembre 2006</div><br> <hr><br>

2. Quelle url tapez-vous pour observer le rsultat ? Donnez deux autres url possibles ? http://127.0.0.1 http://localhost http://nom_machine 3. Continuer complter le fichier index.php de telle sorte que vous chargiez le contenu du fichier css : styles.css . Cf ci-dessus 4. Quel est l'intrt d'utiliser des styles CSS ? Dclaration centralise des styles, facilit l'homognit de la mise en forme du site et D.Brmont 6 au 10 novembre 2006 3/5

ANGD Mathrice : Sites web dynamiques TP - corrig les mises jour de styles.

CIRM Marseille

PHP
1. diter le fichier configuration.php afin de l'adapter votre environnement.
define('SERVEURBDD',"localhost"); // Definition de l'utilisateur accedant a la base de donnees define('USERBDD',"cirm"); define('PASSWDBDD',"cirm"); define('DATABASE',"cirm");

2. Histoire de se mettre dans le bain, commencer par complter le script formulaire.php en ajoutant : -les affectations de variables suite la requte de slection des questions -en affichant le numro de question et la question et en les mettant en forme.
while($line = mysql_fetch_array($result,MYSQL_ASSOC)){ $ID_QUESTION=$line[ID_QUESTION]; $NUMERO=$line[NUMERO]; $QUESTION =$line[QUESTION]; $TYPE =$line[TYPE]; if ( $NUMERO != "" ) echo "<B>$NUMERO</B>&nbsp;"; echo "$QUESTION<br>\n"; //Appel a la fonction affichant les elements du formulaire } evaluation($ID_QUESTION, $TYPE);

3. Il vous est demand de complter le script evaluation.php afin que la fonction puisse gnrer des zones de texte si $type vaut textarea.
case textarea : echo "<textarea cols=\"75\" rows=\"3\" name=\"$question\"></textarea>\n"; echo "<br><br>\n\n"; break;

4. De mme, complter la fonction formulaireselect() qui gnre un menu droulant en fonction des donnes issues de la table GRADE.
function formulaireselect() { $query = "SELECT ID_GRADE, NOM_GRADE FROM GRADE ORDER BY ID_GRADE"; $result = mysql_query ($query) or die ("La requ\xeate :<br> \"$query\"<br> a \xe9chou\xe9"); echo <<< EOT <font color=black size=5> <select name="CORPSGRADE"> <option value="0"> --- choisir dans la liste --- </option> EOT; while (list ($ID_GRADE, $NOM_GRADE) = mysql_fetch_row ($result)) { printf(" <option value=\"$ID_GRADE\">%s</option>\n",$NOM_GRADE); } print " </select>\n</font>\n"; echo "<br><br>\n\n"; mysql_free_result($result);

5. En appelant dsormais le fichier index.php, vous devriez avoir le formulaire entirement gnr. 6. Complter maintenant le fichier enregistrement.php, pour que les rponses aux questions d'ordre gnral soient insres dans la table REPONSES_FORMULAIRE.
$query="INSERT into REPONSES_FORMULAIRE VALUES ('', '".$_POST["NOM"]."', '".$_POST["CORPSGRADE"]."', \"$_POST[AFFECTATIONCNRS]\" , \"$_POST[AUTREAFFECTATION]\" ,

D.Brmont

6 au 10 novembre 2006

4/5

ANGD Mathrice : Sites web dynamiques TP - corrig


'".$_POST["EXISTENCESTAGE"]."' , '".$_POST["CONNAISSANCEEXISTENCE"]."');";

CIRM Marseille

7. crire dsormais les requtes permettant de renseigner les tables REPONSES_NOTE et REPONSES_TEXTE.
$query="select QUESTIONS.ID_QUESTION, NOM as TYPE from QUESTIONS, TYPES_QUESTIONS.TYPE=QUESTIONS.TYPE;"; $result = mysql_query ($query) or die ("La requ\xeate :<br> \"$query\"<br> a \xe9chou\xe9"); TYPES_QUESTIONS where

//Preparation des requetes $note_query="INSERT into REPONSES_NOTE (ID_FORMULAIRE, ID_QUESTION, REPONSE) VALUES "; $texte_query="INSERT into REPONSES_TEXTE (ID_FORMULAIRE, ID_QUESTION, REPONSE) VALUES "; //Construction des requetes while($line = mysql_fetch_array($result,MYSQL_ASSOC)){ $ID_QUESTION=$line[ID_QUESTION]; $TYPE =$line[TYPE]; switch ($TYPE) { case radio : $note_query .= "($enregistrement, $ID_QUESTION, \"$_POST[$ID_QUESTION]\"),"; break; case textarea : $texte_query .= "($enregistrement, $ID_QUESTION, \"$_POST[$ID_QUESTION]\"),"; break; } }

Le code intgral est tlchargeable l'adresse suivant : http://www.lpthe.jussieu.fr/~bremont/cirm/tp/V4.tar.gz

Pour aller plus loin


1. Si vous avez fini, crire la fonction verifie() s'assurant que les champs du formulaire ont bien t renseigns. Le corrig est prsent cette adresse http://www.lpthe.jussieu.fr/~bremont/cirm/tp/V3.tar.gz

D.Brmont

6 au 10 novembre 2006

5/5