Include dans un sous dossier
Résolu
Sinistrus
Messages postés
1010
Date d'inscription
Statut
Membre
Dernière intervention
-
Sinistrus Messages postés 1010 Date d'inscription Statut Membre Dernière intervention -
Sinistrus Messages postés 1010 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je rencontre un sérieux problème avec mes sous dossiers.
si je met www.dossier.site.com j'obtiens une erreur 500 si je met dans mes
Pourtant si j'accède à www.site.com/dossier tout fonctionne à merveille.
D'où peut venir le soucis svp ?
Merci de votre aide.
Cordialement
Je rencontre un sérieux problème avec mes sous dossiers.
si je met www.dossier.site.com j'obtiens une erreur 500 si je met dans mes
includes("../../page.php")ou encore
include($_SERVER["DOCUMENT_ROOT"]."/page.php")afin d'attacher mes pages.
Pourtant si j'accède à www.site.com/dossier tout fonctionne à merveille.
D'où peut venir le soucis svp ?
Merci de votre aide.
Cordialement
A voir également:
- Include dans un sous dossier
- Dossier appdata - Guide
- Impossible de supprimer un dossier - Guide
- Mettre un mot de passe sur un dossier - Guide
- Comment dézipper un dossier - Guide
- Dossier démarrage - Guide
4 réponses
Oui il faut bien faire la différence entre le chemin depuis le système de fichier (protocole file) et le chemin depuis le serveur web (protocole http).
Coté serveur, PHP peut accéder à tous les fichiers du serveur où il est exécuté directement via le système de fichier.
Par exemple pour les fonctions php include, require, fopen sur un fichier du serveur, etc.
Coté client, le navigateur de l'utilisateur n'as pas accès au système de fichier du serveur mais uniquement au serveur web via le protocole http.
Dans ce cas il faut alors renseigner le chemin depuis la racine de ton site.
On a donc deux constantes à utiliser selon que le chemin sera interprété par PHP (donc via le système de fichier) ou par le navigateur (donc via le serveur web). Par exemple :
Coté serveur, PHP peut accéder à tous les fichiers du serveur où il est exécuté directement via le système de fichier.
Par exemple pour les fonctions php include, require, fopen sur un fichier du serveur, etc.
Coté client, le navigateur de l'utilisateur n'as pas accès au système de fichier du serveur mais uniquement au serveur web via le protocole http.
Dans ce cas il faut alors renseigner le chemin depuis la racine de ton site.
On a donc deux constantes à utiliser selon que le chemin sera interprété par PHP (donc via le système de fichier) ou par le navigateur (donc via le serveur web). Par exemple :
<?php define('PATH_ROOT', '/home/lesite/www'); define('URL_ROOT', 'http://www.lesite.com'); ?> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <link type="text/css" href="<?php echo URL_ROOT; ?>/css/styles.css" rel="stylesheet" /> <?php include(PATH_ROOT."/config.php"); ?> <?php include(PATH_ROOT."/inclusion/header.php"); ?> <?php include(PATH_ROOT."/inclusion/menu-haut.php"); ?> <?php include(PATH_ROOT."/inclusion/footer.php"); ?>
Salut,
Il s'agit d'un problème de chemin relatif :
- http://www.php-astux.info/chemins-relatif-absolu.php
- https://www.alsacreations.com/astuce/lire/78-quelle-est-la-diffrence-entre-les-chemins-relatifs-et-absolus.html
Une solution classique est de définir une constante contenant le chemin absolu vers la racine de ton site, puis d'utiliser cette constante dans chaque appel de include/require.
Par exemple :
Bonne journée
Il s'agit d'un problème de chemin relatif :
- http://www.php-astux.info/chemins-relatif-absolu.php
- https://www.alsacreations.com/astuce/lire/78-quelle-est-la-diffrence-entre-les-chemins-relatifs-et-absolus.html
Une solution classique est de définir une constante contenant le chemin absolu vers la racine de ton site, puis d'utiliser cette constante dans chaque appel de include/require.
Par exemple :
define('PATH_ROOT', '/var/www/monsite/'); // ou pour windows : // define('PATH_ROOT', 'C:/wamp/www/monsite/'); include PATH_ROOT . 'page.php';
Bonne journée
Bonjour Pitet et merci de t'occuper de mon soucis.
J'ai fais les tests mais ça ne fonctionne pas.
Le fichier ouvert pour test est dans dossier.monsite.com
J'ai sauté quelque chose ? :s
J'ai fais les tests mais ça ne fonctionne pas.
<?php echo $_SERVER["DOCUMENT_ROOT"]; //Juste pour avoir le chemin absolu que j'écris en dur dans PATH_ROOT ?> <?php define('PATH_ROOT', '/home/lesite/www'); ?> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <link type="text/css" href="<?php echo PATH_ROOT; ?>/css/styles.css" rel="stylesheet" /> <?php include(PATH_ROOT."/config.php"); ?> <?php include(PATH_ROOT."/inclusion/header.php"); ?> <?php include(PATH_ROOT."/inclusion/menu-haut.php"); ?> <?php include(PATH_ROOT."/inclusion/footer.php"); ?>
Le fichier ouvert pour test est dans dossier.monsite.com
J'ai sauté quelque chose ? :s