Page 1 sur 1

Constitution de page

Posté : 04 juin 2010, 14:22
par albius
Bonjour,

Voilà un moment que je cherche à optimiser le système de constitution et la navigation inter page de mon application web. Je vais essayer de décrire le plus précisément possible son fonctionnement. Dans un premier temps, j'ai un menu principal:
<ul id="menu">
                    <li><a href="adminIndex.php?menu=prod&content=modifProd" id="loadProd" title="Gestion des produits">Gestion des produits</a></li>
                    <li><a href="adminIndex.php?menu=frs&content=editFrs" title="Gestions des fournisseurs">Gestions des fournisseurs</a></li>
                    <li><a href="adminIndex.php?menu=com&content=editCom" title="Gestions des commandes">Gestions des commandes</a></li>
...
</ul>
Les 2 variables qui accompagnent chaque url vont décider respectivement d'un sous menu et du contenu. Elles sont traitées en début de fichiers:
$menu = !empty ($_GET['menu']) ? filter_var($_GET['menu'], FILTER_SANITIZE_STRING): NULL;
$content = !empty ($_GET['content']) ? filter_var($_GET['content'], FILTER_SANITIZE_STRING): NULL;
Une fois ceci fait, une inclusion s'effectue en fonction de la variable:
<div id="navigation">
                <?php
                switch ($menu) {
                    case "prod" : include('gestProd/prodMenu.php');
                        break;
                    case "frs" : include('gestFrs/frsMenu.php');
                        break;
...
</div>
 <div id="contenu">
                <?php
                switch ($content) {
                    case "newProd" : include('gestProd/ajoutProd.php');
...
case "choicePrint" : include('gestComm/bonCommandes/constBonCom.php');
                        break;
...
default : include('gestComm/gestCom.php');
Qu'est-ce que je pourrai faire pour améliorer ce code ? (Je pense notamment en terme de sécurité, à la gestion d'erreur (404))
merci,

Re: Constitution de page

Posté : 04 juin 2010, 14:56
par macgawel
(...)
Qu'est-ce que je pourrai faire pour améliorer ce code ? (Je pense notamment en terme de sécurité, à la gestion d'erreur (404))
merci,
Bonjour.

1. Au niveau sécurité, vu que tu fais un switch case, il y a peu de risque.

2. Gestion des erreurs : Dans le switch case de $menu, il suffit de rediriger par défaut vers la page 404. Comme ça, si on a demandé une page qui n'est pas définie dans le switch case, ça renvoit en 404.
Après, la page 404 peut être plus ou moins 'user-friendly' (proposer des liens proches de la requête par exemple)

3. Juste un petit détail :
Comme c'est fait actuellement, le jour où tu rajoutes un sous-menu/une fonction, il faut rajouter un case et modifier le menu.
Tu pourrais utiliser un fichier de paramètrage, en CSV ou XML ou autre, du genre

Code : Tout sélectionner

Nom du lien;paramètres d'URL;page appelée;...
Ca demande un peu de codage supplémentaire pour récupérer les informations, mais après il n'y a qu'un fichier à modifier pour rajouter/modifier des éléments.

Re: Constitution de page

Posté : 04 juin 2010, 15:27
par albius
Bonjour,
Dans le switch case de $menu, il suffit de rediriger par défaut vers la page 404
C'est vrai que je ne l'ai pas écris dans la portion de code, mais il y a bien une inclusion par défaut également pour le menu. En fait, l'utilisateur, une fois identifié, arrive sur une page constituée par défaut. Elle est modifiée par la suite selon ce que la personne veut faire...
Pour le 3, c'est vrai que ce n'est pas très pratique, mais l'ajout d'une nouvelle fonctionnalité n'est pas courant, et ce n'est pas pour le temps que ça prend...
merci,