Quelle arborescence pour mon site ?

Fermé
-
 sinda -
Bonjour,

je suis partagé entre deux solutions quant à l'arborescence de mon site web : (je précise que je mets ds tous les cas l'index à la racine du site)

1. soit je crée des dossiers afin de bien tout ordonner, et pour savoir facilement ou trouver telle page

exemple :

-index.html
-dossier administration :
-.htaccess
-.htpasswd
-fichiers de mise jour du site
-dossier 1
-
-
-
...

2. soit je mets tout "en bordel" sans créer de dossier (tout a la racine quoi)

J'ai choisi le cas 1, ce qui parait logique, mais le pb c'est par exemple, lorsque je veux faire un "include menu.php", je suis obligé de faire un menu propre à chaque dossier ou sous dossier, car sinon les liens ne marchent pas en général :

il y a besoin selon les cas de liens du type "dossier1/menu.php", "menu.php","../menu.php", ou encore ca m'est arrivé de "../../menu.php"

et dans chaque element de menu ou il y a un lien il faut a chaque fois tt modifier...

bon mon explication est assez longue, mais j'espere que qqun aurait une solution a me proposer

merci d'avance de m'avoir lu

22 réponses

Messages postés
3415
Date d'inscription
mercredi 21 mars 2007
Statut
Contributeur
Dernière intervention
28 mars 2011
680
personnellement, je met tout dans la racine sauf :
Les images
les anims flash
les sons
mais en général, mes sites sont pas très grands.
Messages postés
54
Date d'inscription
dimanche 11 novembre 2007
Statut
Membre
Dernière intervention
31 janvier 2009
4
tout depend de a quoi ton site va servir ?
_____________________________________________
black-trinity@hotmail.fr
je veux faire l'arborescence d'un site d'une entreprise exportatrice des dattes
Messages postés
3415
Date d'inscription
mercredi 21 mars 2007
Statut
Contributeur
Dernière intervention
28 mars 2011
680
sinon t'as un truc possible genre :
pages_utilisateur/
Pannel_admin/
forum/
...
pages & autres
...
Bonjour,
ben moi je ne fai ke debuter dan ce domaine, mai g un excellent encadreur, alor voila ce ke je te propose:
1. tu cré un site a partir de l'option géré les sites (com ça té page seron tré bien organisé),
2. tu cré une page PHP au debut pas HTML ( c ce ki ta poser des probleme),
3. tu fai copié collé de ton fichier (site) ke tu a deja nomé a l'endroit suivant: C:\EasyPHP1-7\www (com ça ta page sera la page index par defaut).
apré la création de tés page (.php) tu peu facilement inclure ou inserer des objet PHP tel ke l'echo ou les variables de formulaire, etc....

je v pa trop te longuir, lastuce est ke tu doit créer une page .php pas .html.

et bn courage, jespere ke g t utile omoins.
Messages postés
4607
Date d'inscription
lundi 7 novembre 2005
Statut
Contributeur
Dernière intervention
24 octobre 2020
1 314
Plutôt que de faire des insertions relatives ( ../../menu.php), qui sont spécifiques au dossier en cours, fais des insertions en absolu par rapport à la racine du serveur :

→ "/menu.php" , si le menu.php est à la racine (en clair, tu indiques l'adresse complete du fichier, en commencant par la racine /)
Bonsoir a tous et merci pour vos reponses,

en fait toutes mes pages ou presque sont en .php, mais il y a tjs le pb d'indexation
je vais jeter un oeil a tout ce que vous me proposez et je vous en reparle prochainement, ce soir j'ai le cerveau cramé a force de reflechir a tout ca ;p

pour repondre deja a blacktrinity, je suis en train de faire un "assez gros site", avec forum, et plusieurs rubriques, plus la mise a jour en ligne, d'ou je pense la necessité de bien classer tous les documents

je vous souhaite une bonne soiree
a+
Messages postés
6728
Date d'inscription
mardi 14 mai 2002
Statut
Contributeur
Dernière intervention
11 janvier 2016
916
salut,

moi je ne laisse que 'index' à la racine et tout le reste dans des dossiers.
pour les url je suis d'accord avec Gryzzly (bonjour lui !), si tu ne veux pas être embêté tu passes par une adresse absolue.

le problème c'est le développement en local…
tu peux utiliser une constante que tu ajoutes à chaque url, quand tu upload tu n'as qu'une valeur à modifier.
define('ROOT', 'http://www.monsite.fr'); // dans un fichier de config
include(ROOT.'dossier/fichier.ext'); // dans les autres fichiers
Bonjour a tous, me revoila ;

kwaio : ce que tu me dis, c'est de faire des dossiers specifiques il me semble, c'est ce que je faisais jusque la

minousert : excuse moi je n'ai pas tres bien compris :s mais comme je l'ai dit ttes mes pages sont .php ; sinon j'utilise wamp et non easyphp

gryzzly et dalida : ce que vous appelez adresses absolues, ce sont bien des adresses du style "http://monsite.com/index.php" ou "http://monsite.com/actu/news.php" ?
je pense que vous proposez la meilleure solution en effet, pour un site qui n'est pas en local, mais la je travaille surtout en local pr le moment

dalida, je crois que j'ai compris le truc de la constante, pourrais tu approfondir un peu s'il te plait ?

en tt cas merci a tous pour ces réponses et a bientot
Messages postés
4607
Date d'inscription
lundi 7 novembre 2005
Statut
Contributeur
Dernière intervention
24 octobre 2020
1 314
oui :
absolue : avec ou sans le nom du serveur au début (au minimum une adresse qui commences par / , càd qui commences à la racine du serveur)

La solution que te propose l'égyptienne, c'est justement de mettre dans une constante l'adresse root/racine du serveur :

CAS 1:
define('ROOT', 'http://www.monsite.fr/'); // si tu travailles sur le serveur, à la racine

CAS 2:
define('ROOT', 'http://127.0.0.1/NOM_DOSSIER1/NOM_DOSSIER2/'); // si tu travailles en local, et que ton site en cours se trouve dans Dossier1/dossier2

CAS 3 :
SI en local tu travailles aussi a la racine du serveur :
define('ROOT', 'http://127.0.0.1/");

et ensuite, tu n'a plus qu'a appeler toujours :
include(ROOT.'dossier/fichier.ext'); // dans les autres fichiers

ce qui appelera si tu es dans le cas 1 ) :
https://www.pagesjaunes.fr/

ce qui appelera si tu es dans le cas 2 ) :
http://127.0.0.1/NOM_DOSSIER1/NOM_DOSSIER2/dossier/fichier.ext

ce qui appelera si tu es dans le cas 3 ) :
http://127.0.0.1/dossier/fichier.ext
salut et merci !

j'ai compris ! =)
j'ai encore deux petites interrogations :

1. la définition : define('root','http://monsite.fr/') je le mets dans un fichier a part du style "config.php" ? ensuite je dois l'appeler à chaque page par exemple ds <head> ??

2. qd tu ecris "http://127.0.0.1/", pour moi le 127.0.0.1 ca correspond à C:/wamp/www/site/ ?

++
1. il faut utiliser un include je n'avais pas tt lu, c'est dc bien un fichier externe au m titre par exemple que le menu ;)
Messages postés
4607
Date d'inscription
lundi 7 novembre 2005
Statut
Contributeur
Dernière intervention
24 octobre 2020
1 314
1) affirmatif

2) j'en sais rien, je conais pas wamp. En revanche, si ca peut t'eclairer, lorque sous easyphp, installé sous C:/prog files/easyphp/ ... je lance au travers d'un navigateur :

C:/prog files/easyphp/www/mon_fichier_qui_contient_du_php.php

alors le php n'est pas interprété.

En revanche :
http://127.0.0.1/mon_fichier_qui_contient_du_php.php

est intérprété

Mais comme je sais pas comment fonctionne wamp...
ok merci je vais voir ca...
Messages postés
2480
Date d'inscription
vendredi 29 octobre 2004
Statut
Contributeur
Dernière intervention
13 février 2018
621
Salut,

Avec WANP5 tu cliques sur l'icône et puis sur "Localhost" tout en haut. Si tu n'a pas refusé l'installation du menu (après avoir choisie l'emplacement de www) tu auras un listing des dossiers qui ce trouve dans www. Et un lien vers phpinfo( ), phpmyadmin et SQLitemanager

La logique d'organisation veux que chaque dossier dans www représente un projet.
Si tu n'a pas installé le menu wanp5 tape dans l'adresse

http://localhost/site/ 
ca ne marche pas très bien :s

a la racine de mon site j'ai l'index et un dossier config dans lequel se trouve "menu.php" et "constante.php"

donc :

"c:/wamp/www/site/index.php"
"c:/wamp/www/site/config/menu.php"
"c:/wamp/www/site/config/constante.php"

il y a donc "constante.php" dans lequel j'ai écrit :

<?php
define('root', 'http://127.0.0.1/');
?>

puis qd je veux insérer mon menu ds l'index.php j'ai écrit :

<div id="menu">
<?php
include (root.'config/menu.php');
?>
</div>

malheureusement ca ne fonctionne pas, qu'est ce qui deconne ?
Messages postés
4607
Date d'inscription
lundi 7 novembre 2005
Statut
Contributeur
Dernière intervention
24 octobre 2020
1 314
<?php
define('ROOT', 'http://localhost/site/');
?>
<?php
include (ROOT.'config/menu.php');
?>
ta proposition me semble sur la bonne voie, c'est bien localhost

mais ca ne marche pas car le fichier "config.php" ou j'ai defini le "root" n'est pas a la racine, et donc pas ds le mm repertoire que l'index
Messages postés
4607
Date d'inscription
lundi 7 novembre 2005
Statut
Contributeur
Dernière intervention
24 octobre 2020
1 314
Ca ne devrait pas poser problème.
Est ce que tu pourrais nous montrer l'arborescence de ces fichiers (config, menu, page, etC...) . Il y a forcément une solution ;-)
je vais essayer d'etre clair :

-index.php
-actu (dossier ou il y a l'actualité du site) :
-----news.php
-----actu1.php
-----actu2.php...
-config (la ou il y a le css...)
-----menu.php
-----design.css
-----constante.php (ou on a posé root = "http://localhost/site/")
-administration
-----fichiers .ht et mise a jour du site...


donc pour le moment a la racine, il y a l'index et trois dossiers : actu, config et admin
Messages postés
4607
Date d'inscription
lundi 7 novembre 2005
Statut
Contributeur
Dernière intervention
24 octobre 2020
1 314
Tu comptes avoir une architecture beaucoup plus complexe ou pas (dossiers, sous dossiers, sous sous dossier....) ?
Est ce que c'est un site dynamique ou bien est ce que tu créés toi meme les nouvelles pages avant de les uploader ?

Si architecture simple et site "statique en php" :
Pourquoi n'appelerais tu pas la config ainsi :

include ("../config/constante.php"); excepté pour l'index, où tu appelerais include ("config/constante.php"); ?

dans ce cas on revient à l'adresse relative ...

Sinon, tu crées autant de constante.php qu'il y a de dossier... mais ca oblige a mettre a jour tous les fichiers...

je bloque... si j'ai une idée lumineuse, je sonne ;-)