Problème avec include (php) - Relatif / Absolu ?

WRInaute occasionnel
Bonjour et merci de prendre le temps d'étudier le problème que je vais exposer.

J'ai un site sur free.fr : son adresse est monsite.free.fr
L'intégralité du site fonctionne très bien. J'utilise plusieurs scripts php dans leurs dossiers respectifs, mais il est un peu lourd (pour les faibles connexions), alors j'ai décidé d'en faire une version light dans un sous dossier.
Le sous-dossier michel contient le site allégé : son adresse est monsite.free.fr/michel/
dans ce sous-dossier, j'ai placé les scripts (livre d'or, calendrier etc...) dans leurs dossiers respectifs.
quand je vais sur monsite.free.fr/michel/livredor/index.php , mon livre d'or fonctionne très bien.
mais lorsque sur ma page monsite.free.fr/michel/index.php j'appelle grâce à la fonction include la page suivante :
Code:
<?
include("../michel/livredor/index.php");
?>
le problème est que le script en lui même n'interprète pas correctement l'adresse relative.
donc, une solution , la seule que j'ai trouvée jusqu'à présent c'est de mettre une IFRAME dans laquelle j'apelle monsite.free.fr/michel/livredor/index.php , ce qui fonctionne... mais qui n'est pas vraiment idéal...

Ma question :

Existe-il une fonction , une solution pour inclure la page monsite.free.fr/michel/livredor/index.php en expliquant qu'il faut tout inclure en fonction du fichier monsite.free.fr/michel/livredor/index.php... (le script est composé de 500 fichiers, je n'ai pas la possibilité de tout ré-adresser) ?

merci de m'apporter, si vous le pouvez , un/des éléments de réponse.

Cordialement, mike.
 
WRInaute passionné
si tu es dans le répertoire "michel" il faut plutôt mettre :
Code:
include("./livredor/index.php");
 
WRInaute discret
Salut,

Si tu veux inclure le livre d'or à partir de -monsite.free.fr/michel/index.php

Code:
$dir=dirname(__FILE__).DIRECTORY_SEPARATOR.'livredor'.DIRECTORY_SEPARATOR.'index.php';

Si tu veux inclure le livre d'or à partir de -monsite.free.fr/divers/index.php

Code:
$dir=dirname(__FILE__).DIRECTORY_SEPARATOR.'..'.DIRECTORY_SEPARATOR.'michel'.DIRECTORY_SEPARATOR.'livredor'.DIRECTORY_SEPARATOR.'index.php';

Voir
  • dirname() qui envoie le nom du dossier
    et aussi realpath() qui retourne le chemin canonique absolu
 
Discussions similaires
Haut