IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Discussion :

Bonne structure d'un site Web

  1. #1
    Membre régulier Avatar de ForgetTheNorm
    Homme Profil pro
    Docteur en informatique
    Inscrit en
    Novembre 2006
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Docteur en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2006
    Messages : 133
    Points : 76
    Points
    76
    Par défaut Bonne structure d'un site Web
    Bonjour à tous

    Je suis en train de réaliser un site Web. Pour éviter d'avoir des chemins entre CSS, images et pages PHP, j'ai opté pour avoir une structure ou chaque ensemble de pages sur le même sujet sont dans un dossier. J'ai donc un ensemble de dossiers comprenant des pages PHP, et un dossier "images".

    Chaque page générée fait appel à des CSS qui font appel aux images via un chemin sous la forme "../images/xxx.xxx".

    Je pensais avoir trouvé un bon moyen d'avoir une gestion des chemins simplifiés, mais je m'aperçois de la limite du problème au moment où je dois déclarer un index.php à la racine du site. Avant même de le faire, je sais que les liens "../images/" ne fonctionneront plus.

    Quelle solution personne adaptez-vous sur vos créations de sites ? Si ma solution est bonne, comment passer outre la gestion de l'index ?

    Pierre

  2. #2
    Membre éprouvé Avatar de redoran
    Homme Profil pro
    Développeur-Amateur
    Inscrit en
    Juin 2010
    Messages
    1 346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur-Amateur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 346
    Points : 1 031
    Points
    1 031
    Par défaut
    Salam ; je crois que votre question est de l'ordre de mon post ( structuration d'un site au niveau de la racine du serveur) , voila je vous propose ce lien trés intéressant d'ailleurs c'est l'avenir : ftp://ftp-developpez.com/tahe/web/ph...he-php-mvc.pdf
    personnellement je commence a réalisé une structure se rapprochant du model MVC vu que je suis débutant. bonne continuation

  3. #3
    Membre régulier Avatar de ForgetTheNorm
    Homme Profil pro
    Docteur en informatique
    Inscrit en
    Novembre 2006
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Docteur en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2006
    Messages : 133
    Points : 76
    Points
    76
    Par défaut
    Bonjour et merci pour ta réponse.
    Citation Envoyé par redoran Voir le message
    Salam ; je crois que votre question est de l'ordre de mon post ( structuration d'un site au niveau de la racine du serveur)
    C'est vrai, nous avons la même problématique (mais ton sujet passionne aussi peu que le mien)

    Citation Envoyé par redoran Voir le message
    je vous propose ce lien trés intéressant d'ailleurs c'est l'avenir : ftp://ftp-developpez.com/tahe/web/ph...he-php-mvc.pdf
    J'ai lu ce document -très intéressant, d'ailleurs-, et je n'ai vu nulle part une réponse à ma question, qui est plus d'ordre d'organisation des fichiers en eux-mêmes. Par contre, mon site développe actuellement un modèle MVC, mais ça n'a rien à voir.

    Pierre

  4. #4
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    A la racine de ton site, tu devrais avoir
    index.php
    ├images/
    |├xxx.xxx
    |├yyy.yyy
    ├css/
    |├css1.css
    |├css2.css
    └pages/
    ├page1.php
    └page2.php
    ainsi, tu n'as pas besoin d'utiliser des URL relatives mais des absolues à la place : /images/xxx.xxx ou /css/css1.css.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  5. #5
    Membre régulier Avatar de ForgetTheNorm
    Homme Profil pro
    Docteur en informatique
    Inscrit en
    Novembre 2006
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Docteur en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2006
    Messages : 133
    Points : 76
    Points
    76
    Par défaut
    Citation Envoyé par Bovino Voir le message
    A la racine de ton site, tu devrais avoir

    ainsi, tu n'as pas besoin d'utiliser des URL relatives mais des absolues à la place : /images/xxx.xxx ou /css/css1.css.
    Cette solution fonctionne en mettant simplement "/images/a.png" ??
    Ou faut-il quand même mettre l'adresse du serveur devant : "http://www.www.com/images/a.png" ?
    Je suis sceptique...

    Pierre

  6. #6
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    Ca revient au même
    "/" correspond à la racine du site, donc ""http://www.www.com/"
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  7. #7
    Membre régulier Avatar de ForgetTheNorm
    Homme Profil pro
    Docteur en informatique
    Inscrit en
    Novembre 2006
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Docteur en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2006
    Messages : 133
    Points : 76
    Points
    76
    Par défaut
    Citation Envoyé par Bovino Voir le message
    Ca revient au même
    "/" correspond à la racine du site, donc ""http://www.www.com/"
    J'ai testé, cette méthode ne fonctionne pas... Pour l'instant, je suis en mode développement avec un Wamp sur ma machine. Le dossier "www" (racine de redirection du serveur Apache) contient mon site. Or, tous les includes, les css et les images ne fonctionnent pas.
    Un exemple d'erreur sur un include :
    Warning: include_once(/common/common_user.php) [function.include-once]: failed to open stream: No such file or directory in ...\www\gallery\show_gallery.php on line 9

    Pierre

  8. #8
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par ForgetTheNorm
    cette méthode ne fonctionne pas...
    Si
    Mais à condition de bien lire ce qui est dit !
    Citation Envoyé par Bovino
    "/" correspond à la racine du site
    No such file or directory in ...\www\gallery\show_gallery.php on line 9
    Ton site n'est pas à la racine !
    Donc tu dois adapter
    Citation Envoyé par Bovino
    ainsi, tu n'as pas besoin d'utiliser des URL relatives mais des absolues à la place : /images/xxx.xxx ou /css/css1.css.
    en
    ainsi, tu n'as pas besoin d'utiliser des URL relatives mais des absolues à la place : /gallery/images/xxx.xxx ou /gallery/css/css1.css.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  9. #9
    Membre régulier Avatar de ForgetTheNorm
    Homme Profil pro
    Docteur en informatique
    Inscrit en
    Novembre 2006
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Docteur en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2006
    Messages : 133
    Points : 76
    Points
    76
    Par défaut
    Citation Envoyé par Bovino Voir le message
    Si
    Mais à condition de bien lire ce qui est dit !
    Ton site n'est pas à la racine !
    Donc tu dois adapter
    J'ai donné un mauvais exemple. "Gallery" est, sur ton exemple de ton post qui montre une hiérarchie de système de fichiers, l'équivalent du dossier "Pages". Le dossier Gallery est donc à la racine, et est l'un des dossiers comprenant des pages php.

    Mon site est donc à la racine (www), il contient un dossier "Gallery", et à l'intérieur de celui ci il y a une page "show_gallery". Cette page fait appel à un include qui se situe dans mon C:\...\www\common\common_users.php. Je fais donc un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    include("/common/common_users.php")
    vu que le dossier "common" est à la racine du site.

    Pierre

  10. #10
    Membre régulier Avatar de ForgetTheNorm
    Homme Profil pro
    Docteur en informatique
    Inscrit en
    Novembre 2006
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Docteur en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2006
    Messages : 133
    Points : 76
    Points
    76
    Par défaut
    Bonjour

    Je reviens vers vous car mon problème n'est toujours pas résolu, et je n'arrive pas à comprendre.

    Je recommence donc tout depuis le début. Je possède un serveur Apache (installé via WAMP).
    Le Root d'Apache est situé sur D:/xxx/monsite/. Quand je tape "/localhost/" dans la barre du navigateur, je tombe donc bien sur "D:/xxx/monsite/index.php".
    Le dossier monsite est composé de plusieurs sous-dossiers : monsite/membres/, monsite/common/, monsite/images/, etc.

    Lorsque je fais un fichier lambda test.html contenant la ligne de code
    "<img src="/images/test.png"/>", quelque soit l'endroit de ce fichier (à la racine de monsite ou dans les sous-dossiers, j'obtiens bien l'image.

    Cependant, lorsque je fais un include("/common/common.php"); dans un fichier php, ça ne fonctionne plus.

    J'ai fait un test rapide ; avec l'utilisation d'un readdir sur "/" (pour lister le contenu du dossier "/"), j'obtiens le contenu de "D:/" et pas "D:/xxx/monsite/" !

    Cependant, lorsque je fais un getcwd() (pour obtenir le working directory), je suis bien sur "D:/xxx/monsite/"...

    Comment faire ?

    Pierre

  11. #11
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 618
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 618
    Points : 188 585
    Points
    188 585
    Par défaut


    C'est simple : "'/", sous les systèmes UNIX-like, c'est la racine ; ".", c'est le répertoire courant. Fais donc plutôt un "opendir('.');".
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  12. #12
    Membre régulier Avatar de ForgetTheNorm
    Homme Profil pro
    Docteur en informatique
    Inscrit en
    Novembre 2006
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Docteur en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2006
    Messages : 133
    Points : 76
    Points
    76
    Par défaut
    Citation Envoyé par dourouc05 Voir le message


    C'est simple : "'/", sous les systèmes UNIX-like, c'est la racine ; ".", c'est le répertoire courant. Fais donc plutôt un "opendir('.');".
    Parfait !
    J'ai testé avec un ./common/..., et ça fonctionne !

    Merci beaucoup !
    J'ai un petit soucis supplémentaire : j'ai mon serveur en développement sous Windows, et mon serveur de production sous Unix. Comment puis-je concrètement passer de l'un à l'autre sans changer de code ?

    Avec un include(($unix)?"/","./") . "common/moninclude.php") ?

    Pierre

  13. #13
    Membre régulier Avatar de ForgetTheNorm
    Homme Profil pro
    Docteur en informatique
    Inscrit en
    Novembre 2006
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Docteur en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2006
    Messages : 133
    Points : 76
    Points
    76
    Par défaut
    Bonjour

    J'ai trouvé une solution en faisant un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    include_once(((PHP_OS == "WIN32" || PHP_OS == "WINNT")?$_SERVER['DOCUMENT_ROOT']:"/") . "common/common.php");
    Merci à tous

    Pierre

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Structure d'un site WEB
    Par Luckytfc dans le forum Débuter
    Réponses: 5
    Dernier message: 26/04/2013, 18h40
  2. Structure d'un site web
    Par piero53 dans le forum Débuter
    Réponses: 9
    Dernier message: 15/05/2009, 14h15
  3. structure d'un site web dynamique?
    Par secondechance dans le forum Débuter
    Réponses: 2
    Dernier message: 16/02/2009, 21h53
  4. conselle pour la structure d'un site web
    Par Mounr dans le forum Webdesign & Ergonomie
    Réponses: 2
    Dernier message: 11/07/2007, 07h32
  5. Retrouver structure du code PHP d'un site web
    Par picomz dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 4
    Dernier message: 28/02/2007, 19h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo