Probème lors de la définition de l'arborescence, quelle solution?

arnaud_lambert Messages postés 1 Date d'inscription mercredi 6 décembre 2006 Statut Membre Dernière intervention 29 mars 2008 - 29 mars 2008 à 12:01
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 - 29 mars 2008 à 13:46
Bonjour a tous,

Je sollicite vos neurones pour quelque chose qui me pose problème.

En effet je suis en train de dévelloper un site complet (un jeu pour être plus précis) dans le cadre d'un travail, mais je me sent un peu "bouché" avec la solution que j'ai choisie en ce qui concerne l'arborescence et les liens entre page, donc j'aimerai vos avis et des solutions (si possible ;) )

Voici donc  mon arborescnece:
|configuration
-configuration.php
|fonction
-connexion.php
-mysql.php
|construction
-haut.php
-menu.php
-bas.php
|module
   |construction
   -haut.php
   -menu.php
   -bas.php
   |forum
   -accueil.php
-index.php

Voila, en fait on dira qu'il y a 2 niveau, le premier avec index.php (premier niveau car pas besoin de connexion utilisateur pour y accéder). Le fichier index.php utilise en include haut, menu et bas qui se trouve dans le dossier "construction" de premier niveau. En second niveau (obilgation d'une connexion utilisateur) nous avons accueil.php qui lui utilise haut, menu et bas du dossier constructuion de second niveau (dans module)...

Bon, mon souci n'est pas que ca fonctionne, tout fonctionne mais voila c'est très statique comme facon de travailler, et j'ai des include dans tout les sens, je trouve cela vraiment pas propre.

Alors j'avais pensé a une autre solution,  par exemple, utiliser une page d'index construite du haut, du bas, et au milieu un switch d'un GET (exemple page = accueil) dans l'URL, et mon switch incluerai chaque page de code principal en fonction de ce qui a dans l'URL. Je sais que cette solution n'est pas des plus fiable si des petit malin essaie de changer la valeur du get, néanmoin, je compte utiliser un tableau contenant tout les liens possible du site et autoriser l'accès uniquement si le lien se trouve dans le tableau, comme ca aucun souci. Dans ce cas, j'incluerai mes fonctions, mes fichier de configuration dans ma page d'index, et je n'aurai plus aucun souci pour les fichiers appelé...

Ma question réside dans le fait que si j'ai besoin de passer d'autre variables en GET (dans l'URL) je voulais savoir si ca ne pose aucun souci?

J'avais aussi pensé a une troisième solution que j'ai du mal a comprendre, elle se réfère a un tuto qui utilise une schématisation parent - enfant avec une base de donnée, mais j'ai du mal a comprendre ou se trouve le contenu dans la page, ou est ce que par exemple le formulaire de connexion doit etre appelé... http://pbnaigeon.developpez.com/tutoriel/PHP/conception-site-dynamique/

Si vous avez d'autres solutions?liens?

Si je passe par le forum pour ces questions c'est pour une simple raison, une bonne partie du site est déjà codée ainsi que beaucoup de fonction, et dès lors avant de faire un changement pareil demande réflexion et mes compétences sont encore trop limitée pour pouvoir comprendre tout les effet en arrière plan que cela peut causer...

Meerci pour votre lecture

3 réponses

neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
29 mars 2008 à 12:48
Salut,

Tester une variable de $_GET pour savoir quel contenu afficher dans sa page (hors entête et pied de page) est une très bonne idée. Tellement bonne qu'elle est franchement très très répandue.
Aucun soucis de ce côté là, donc.
Question sécurité, tu fais bien de te poser la question : bonne initiative.
L'erreur (qui créer une faille) que de (trop) nombreux débutants font est d'utiliser directement la variable GET comme nom de fichier à inclure : il faut TOUJOURS contrôler au maximum les valeurs des variables dont la source n'est pas maitrisable ($_GET, $_POST, $_COOKIE, tout ce qui vient d'une saisie utilisateur).
A partir de là, toutes les solutions s'offrent à toi :
- utiliser une liste de pages autorisées
- vérifier que le fichier demandé est bien dans un répertoire autorisé
- tout ce que tu veux quoi
Il faut simplement reprendre le contrôle du contenu des variables. La meilleur solution consistant, sur le principe, à interdir tout et n'autoriser que ce dont on a besoin.

Concernant ta troisième solution, le llien que tu as donné met des heures à ne pas s'ouvrir chez moi... donc je peux pas en dire grand chose...

Cela dit, je ne comprends pas pourquoi tu parles à la fois de niveau (avec ou sans connexion utilisateur) et de méthode de construction de tes pages HTML : ça me semble être deux choses différentes qui n'ont pas vraiment à voir entre elles...

<hr size="2" width="100%" />Neige

N'hésitez pas à lire la doc de PHP avant de poser des questions triviales...
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
29 mars 2008 à 13:29
Hello,

comme Neige : je ne peux pas voir le lien qu tu donnes.
Néanmoins, moi, quand je fonctionne de cette manière, je prévois simplement les modules autorisés dans un tableau. Si la variable du GET ne me convient pas, je redirige sur l'accueil. Et là, aucun soucis à se faire, comme le dit Neige.
0
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
29 mars 2008 à 13:46
Merci de confirmer malalam... C'est pas facile de débuter, merci de me soutenir...

<hr size="2" width="100%" />Neige

N'hésitez pas à lire la doc de PHP avant de poser des questions triviales...
0
Rejoignez-nous