74 lines
3 KiB
TeX
74 lines
3 KiB
TeX
|
\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 <20> 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<66>rente.}
|
|||
|
\item{ il v<>rifie si le login est correct. }
|
|||
|
\end{itemize}
|
|||
|
|
|||
|
\subsection{Les v<>rifications des droits d'acc<63>s}
|
|||
|
\par Il est n<>cessaire, sur chaque page, de v<>rifier l'identit<69> 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<71> (fonction AND) bit-<2D>-bit aux droits de l'utilisateur pour valider ou non l'acc<63>s <20> la page.
|
|||
|
|
|||
|
\par En g<>n<EFBFBD>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'<27>tait pas loggu<67> revienne automatiquement sur la page courrante apr<70>s s'<27>tre identifi<66>.
|
|||
|
|
|||
|
\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<63>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 : <body><div>...}
|
|||
|
\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<6E>es <20>mises vers la sortie standard. Cela permet (entre autres) l'ajout d'en-t<>tes HTML <20> la page alors que le contenu de la page a d<>ja <20>t<EFBFBD> <20>mis...
|
|||
|
Les buffers sont utilis<69>s a tous les niveaux : en-t<>tes, scripts JavaScript, contenu principal.
|
|||
|
|
|||
|
Le contenu du buffer devra {\em imp<6D>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.
|
|||
|
<?php
|
|||
|
$page->endContent();
|
|||
|
\end{lstlisting}
|