Michel
2010-06-17 21:46:21 UTC
Bonjour,
J'ai un petit problème que je n'arrive pas à résoudre, mais qui doit
pourtant être simple, mais bon...
J'ai un fichier, disons insertion.php, qui va être utilisé pour être
inclu dans d'autres par des require_once.
Dans ce fichier, je fais des tests, en allant ouvrir des fichiers sur
mon site qui se trouvent dans d'autres répertoires; par exemple
fichier/monfichier que je vais lire avec des fread; et je vais également
avoir des appels d'autres pages selon les cas. Ces pages peuvent être
situé à d'autres niveaux de l'arborescence.
Le problème, c'est que j'inclue ce insertion.php dans différentes pages
php, qui ne se trouvent pas toutes au même niveau.
Par exemple :
A la racine, je vais avoir une page index.php qui inclue ce fichier pour
des tests.
Dans un autre répertoire, disons repertoire "ici" un autre fichier
index. php (donc "ici/index.php") qui appelle également mon fichier
insertion.php.
Le problème, c'est que j'ai mon serveur localhost où je bosse, qui
ensuite sera installé sur mon site accessible à tout le monde.
Comment faire pour que mes adresses fonctionnent correctement sur les
deux situation (localhost et site) et dans tous les cas de figure.
C'est à dire que lorsque j'appelle insertion.php, je ne sais jamais dans
quel répertoire je suis.
J'ai tenté de récupérer $_SERVER["DOCUMENT_ROOT"] que je mets
systématiquement devant les adresses de fichiers à ouvrir ou de pages
php, dans ce style :
$repertoire = getenv("DOCUMENT_ROOT")."/";
Et ensuite les appels étant $repertoire."ici/index.php" par exemple.
Ca marche dans certains cas mais pas dans d'autres.
J'ai ensuite essayé avec $_SERVER["SERVER_NAME"]
Pareil que plus haut, ça fonctionne dans certains cas et pas dans d'autres.
J'ai enfin tenté de faire tout simplement des chdir("/") avant mes
appels, ça ne marche pas mieux.
Alors bien entendu, je pourrai pour chaque appel, mettre les adresse
complètes "http://...", et les rechanger quand j'installe tout sur le
site, avec le risque d'en oublier en cours de route, même en utilisant
une constante donnant la racine des adresses.
Mais je ne trouve pas ça très propre, et j'aimerai éviter.
Là, je n'ai plus d'idée; et vous ?
Merci
Michel
J'ai un petit problème que je n'arrive pas à résoudre, mais qui doit
pourtant être simple, mais bon...
J'ai un fichier, disons insertion.php, qui va être utilisé pour être
inclu dans d'autres par des require_once.
Dans ce fichier, je fais des tests, en allant ouvrir des fichiers sur
mon site qui se trouvent dans d'autres répertoires; par exemple
fichier/monfichier que je vais lire avec des fread; et je vais également
avoir des appels d'autres pages selon les cas. Ces pages peuvent être
situé à d'autres niveaux de l'arborescence.
Le problème, c'est que j'inclue ce insertion.php dans différentes pages
php, qui ne se trouvent pas toutes au même niveau.
Par exemple :
A la racine, je vais avoir une page index.php qui inclue ce fichier pour
des tests.
Dans un autre répertoire, disons repertoire "ici" un autre fichier
index. php (donc "ici/index.php") qui appelle également mon fichier
insertion.php.
Le problème, c'est que j'ai mon serveur localhost où je bosse, qui
ensuite sera installé sur mon site accessible à tout le monde.
Comment faire pour que mes adresses fonctionnent correctement sur les
deux situation (localhost et site) et dans tous les cas de figure.
C'est à dire que lorsque j'appelle insertion.php, je ne sais jamais dans
quel répertoire je suis.
J'ai tenté de récupérer $_SERVER["DOCUMENT_ROOT"] que je mets
systématiquement devant les adresses de fichiers à ouvrir ou de pages
php, dans ce style :
$repertoire = getenv("DOCUMENT_ROOT")."/";
Et ensuite les appels étant $repertoire."ici/index.php" par exemple.
Ca marche dans certains cas mais pas dans d'autres.
J'ai ensuite essayé avec $_SERVER["SERVER_NAME"]
Pareil que plus haut, ça fonctionne dans certains cas et pas dans d'autres.
J'ai enfin tenté de faire tout simplement des chdir("/") avant mes
appels, ça ne marche pas mieux.
Alors bien entendu, je pourrai pour chaque appel, mettre les adresse
complètes "http://...", et les rechanger quand j'installe tout sur le
site, avec le risque d'en oublier en cours de route, même en utilisant
une constante donnant la racine des adresses.
Mais je ne trouve pas ça très propre, et j'aimerai éviter.
Là, je n'ai plus d'idée; et vous ?
Merci
Michel