\section{Page} Il s'agit de l'objet qui gère tous les composants de la page (en-têtes, scripts, contenu,pied-de-page) et qui gère l'autentification et qui unifie l'apparence des pages. \lstset{language=PHP} \begin{lstlisting} class Page{ function logCheck($authorizedLevel=0); function setTitle($title); function startHeader(); function endHeader(){; function startScript(); function endScript(); function startContent(); function endContent(); function toHTML(); } \end{lstlisting} \subsection{Le constructeur} \par Le construteur de cette classe à plusieurs rôles: \begin{itemize} \item{ il initialise les variables} \item{ il lance une session. En effet, chaque personne qui se connecte sur le site a une session différente.} \item{ il vérifie si le login est correct. } \end{itemize} \subsection{Les vérifications des droits d'accès} \par Il est nécessaire, sur chaque page, de vérifier l'identité de l'utilisateur, et si nécessaire de le forcer a s'identifier correctement. \par Pour ce faire, il faut appeller la méthode \verb+logCheck($authorizedlevel)+, où \verb+$authorizedlevel+ est le masque qui sera appliqué (fonction AND) bit-à-bit aux droits de l'utilisateur pour valider ou non l'accès à la page. \par En général, pour utiliser \verb+logCheck+, il faut : \lstset{language=PHP} \begin{lstlisting} $page=new Page(__FILE__); $_SESSION["referer"]=basename(__FILE__); $page->logCheck(); \end{lstlisting} afin que l'utilisateur qui n'était pas loggué revienne automatiquement sur la page courrante après s'être identifié. \subsection{L'affichage} \par La fonction permettant l'affichage des pages est \verb+toHTML()+ celle-ci assemble le contenu dynamique avec les fichiers suivants, afin de créer une page de D'Astre.Net: \begin{itemize} \item{ \verb+header.inc.php+ :celui le chemin d'acces au fonction ,et insert les bibiotheque nécessaire pour le fontionnement du site } \item{ \verb+bodystart.inc.php+ :ce fichier comprend toutes les balises du début de script html, par exemple :
...} \item{ \verb+footer.inc.php+ :Le pied de page.} \item{ \verb+bodyend.inc.php+ : celui-ci contient du code PHP et HTML gérant la fermeture de l'objet page, ajoutant un pied de page et affichant la page.} \end{itemize} \subsection{Les buffers} \par Pour que l'affichage des pages puisse se faire correctement d'un seul coup dans \verb+toHTML+, il est nécessaire de mettre en tampon toutes les données émises vers la sortie standard. Cela permet (entre autres) l'ajout d'en-têtes HTML à la page alors que le contenu de la page a déja été émis... Les buffers sont utilisés a tous les niveaux : en-têtes, scripts JavaScript, contenu principal. Le contenu du buffer devra {\em impérativement} se trouver entre l'appel des méthodes \verb+startXXX()+ et \verb+endXXX()+. Par exemple, pour le contenu de la page : \lstset{language=PHP} \begin{lstlisting} $page->startContent(); ?> voila le code PHP-HTML qui est mis en tampon pour apparaitre a un endroit precis de la page apres recomposition par toHTML. endContent(); \end{lstlisting}