04.07.2013 Views

Rapport de stage « PubLimsi » Pierre BARUSSAUD

Rapport de stage « PubLimsi » Pierre BARUSSAUD

Rapport de stage « PubLimsi » Pierre BARUSSAUD

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Le contrôleur gère les inputs, c'est a dire les données saisies par l'utilisateur ou<br />

recuperées <strong>de</strong> la base <strong>de</strong> données. On utilise <strong>de</strong>s variables pour chaque élément html<br />

comme les formulaires ou les tableaux, ces variables sont parfois remplies au fur et a<br />

mesure et suivant les choix <strong>de</strong> l'utilisateur , par exemple <strong>de</strong>s champs d'un tableau ne<br />

sont pas les mêmes en fonction d'un choix préce<strong>de</strong>nt, dans ce cas la variable n'aura pas<br />

les mêmes valeurs. En général, ces variables ne reçoivent que du texte représentant du<br />

co<strong>de</strong> html, il sera parfois necessaire d'appeler le modèle pour afficher <strong>de</strong>s éléments <strong>de</strong><br />

la base <strong>de</strong> données .<br />

Pour cela on aplique à une autre variable une fonction du modèle, elle comportera donc<br />

les resultats <strong>de</strong> la requête <strong>de</strong> la fonction qui lui est associé, pour recuperer toutes les<br />

valeurs contenues dans cette variable, on réalise une boucle et tant que cette <strong>de</strong>rnière<br />

peut être lue on traite les données. En general les fonctions retournent plusieurs lignes,<br />

la boucle permet <strong>de</strong> traiter les lignes une par une. (voir co<strong>de</strong> source page 23)<br />

La vue gère l'affichage <strong>de</strong>s pages. La plupart du temps, elle affichera la valeur<br />

<strong>de</strong>s variables <strong>de</strong>finies dans le controleur, sachant que les variable contiennent du texte<br />

au format html, il suffit <strong>de</strong> faire echo $nom_<strong>de</strong>_la_variable pour générer le co<strong>de</strong> html et<br />

ainsi afficher une page web. On peut également ajouter quelque petit affichage en plus<br />

tel qu'un titre ou un message d'alerte.La vue doit comporter le minimum <strong>de</strong> co<strong>de</strong> php<br />

autre que <strong>de</strong>s echos pour l'affichage <strong>de</strong>s élements <strong>de</strong> la page.(Pas trop <strong>de</strong> condition,<strong>de</strong><br />

boucle et pas <strong>de</strong> requête). (voir co<strong>de</strong> source page 25)<br />

En général, les contrôleurs font souvent appellent aux fonctionx du modèle, il est donc<br />

indispensable d'importer en haut le ou les modèles nécessaires. De même, il faut pour<br />

pouvoir afficher les éléments d'une page importer en fin <strong>de</strong> co<strong>de</strong> du contrôleur le ou les<br />

vues necessaires. En effet il est possible d'avoir plusieurs vues pour un controleur (une<br />

en cas d'erreur et une en cas <strong>de</strong> succès par exemple). Une autre solution est <strong>de</strong> crée une<br />

variable dans le controleur et suivant sa valeur la vue affiche <strong>de</strong>s choses differentes.<br />

L'assimilation du modèle MVC a été assez rapi<strong>de</strong>. Les erreurs les plus communes ont<br />

été celle lié à la base <strong>de</strong> données ou mes requêtes n'étaient pas correctes. Un autre<br />

problème qui aurait été gênant pour les utilisateurs se sont les caractères spéciaux tels<br />

que les accents . L'encodage <strong>de</strong> la base n'était pas le même que celui utilisé dans le co<strong>de</strong><br />

php. De ce fait les caractères spéciaux étaient remplacés par un caractère inconnu. Pour<br />

corriger cette erreur, il a fallu forcé le type d'encodage dans chaque fonction <strong>de</strong>s<br />

modèles. Il a fallut s'occuper <strong>de</strong>s apostrophes et guillemets lors d'un ajout prévenir qu'il<br />

s'agit d'un caractère d'une chaine <strong>de</strong> caractère et non un élément du co<strong>de</strong>. Pour cela on<br />

utilise la fonction "addlashes" permettant d'ajouter automatiquement un "slash" <strong>de</strong>vant<br />

ces caractères permettant ainsi au script <strong>de</strong> comprendre qu'il s'agit d'un caractère d'une<br />

chaine. Pour l'affichage, on utilise la fonction "striplashes" pour enlever les "slash"<br />

<strong>de</strong>vant les caractère.<br />

Pour terminer, j'ai utilisé <strong>de</strong>s variables <strong>de</strong> session pour gar<strong>de</strong>r en mémoire les données<br />

<strong>de</strong> l'utilisateur actuel. Ces variables peuvent être utilisé par toutes les pages, et<br />

contrairement aux variables globales elles peuvent changer <strong>de</strong> valeurs en cas <strong>de</strong><br />

changement d'utilisateur. A la déconnexion, les variables <strong>de</strong> session sont vidées.<br />

<strong>Pierre</strong> Barussaud 21 <strong>Rapport</strong> <strong>de</strong> <strong>stage</strong>

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!