chemin relatif ou absolu - PHP - Programmation
Marsh Posté le 02-09-2004 à 16:53:45
logiquement non.
soit tu as definis dans ton php.ini des includes pour aller directement dans certains repertoires (marche bien pour applis mutualisées).
Soit tu te balades :
include('../../paiement/file.php')
Marsh Posté le 02-09-2004 à 17:23:21
je vais aller fouiller mon php.ini je crois.. ça peut servir
Marsh Posté le 02-09-2004 à 19:47:18
Si jamais "/paiement" ne veut pas dire "http://www.monsite.net/paiement" comme tu pourrais le croire.
Le site en question est heberge sur un un serveur, et le path est celui du serveur pas celui du site web.
Donc imaginons que la racine de ton site se trouve dans
/var/www/site45/monsite/ (si tu es heberge sur linux).
Ben quand tu faits "/paiement", tu vas aller ds :
/paiement
et non dans :
/var/www/site45/monsite/paiement
Alors tu as plusieurs solutions, soit tu utilise des ".." pour te balader. Soit tu recuperes le path de ton site (regarde du cote de $GLOBALS['PHP_SELF'] ou de $_SERVER['PATH_TRANSLATED'] plus d'infos : http://www.php.net/manual/en/reserved.variables.php).
Marsh Posté le 02-09-2004 à 23:28:31
Essaye de mettre un chemin absolu complet... comme ça, quelque soit l'endroit, tu pourras faire des includes recursif sans t'arracher les cheveux....
Le chemin racine est normalement dispo dans la variable $_SEVER['DOCUMENT_ROOT'];
Marsh Posté le 03-09-2004 à 12:54:00
si je fais $_SERVER['DOCUMENT_ROOT']."/paiement"... ça marche
mais c un peu galere !
Marsh Posté le 03-09-2004 à 14:05:31
freed102 a écrit : si je fais $_SERVER['DOCUMENT_ROOT']."/paiement"... ça marche |
moi j'utilise les "/.." pour me balader mais c'est autant la galère à mon avis...
Marsh Posté le 03-09-2004 à 15:23:33
ouai finalement c moins galere car les trois car du temps avec les ../../ je me plante ! lol
Marsh Posté le 03-09-2004 à 16:58:30
Snoopy71 a écrit : Essaye de mettre un chemin absolu complet... comme ça, quelque soit l'endroit, tu pourras faire des includes recursif sans t'arracher les cheveux.... |
Personnellement je déconseille les liens absolus ... tout simplement parceque le jour où vous allez changer d'hebergeur ... bonjour la galère.
Marsh Posté le 03-09-2004 à 17:00:55
bah logiquement si je change d'hebergeur.. je change pas la structure de mon site... et seule la racine du site change... et $_SERVER['DOCUMENT_ROOT'] nous indique la racine... donc logiquement... ça devrait pas poser de probleme !
Marsh Posté le 03-09-2004 à 17:03:03
freed102 a écrit : bah logiquement si je change d'hebergeur.. je change pas la structure de mon site... et seule la racine du site change... et $_SERVER['DOCUMENT_ROOT'] nous indique la racine... donc logiquement... ça devrait pas poser de probleme ! |
A condition d'utiliser $_SERVER['DOCUMENT_ROOT'] oui ... mais d'après ce que j'ai compris il te parlait de mettre un chemin absolu complet ... en t'expliquant que tu le trouverais dans la variable $_SERVER['DOCUMENT_ROOT']...
Voila
++
Marsh Posté le 03-09-2004 à 17:09:08
$_SERVER['DOCUMENT_ROOT'] donne le chemin complet... même sous windows ( cprogram files/....)
Et quand tu changes d'hébergeur, le chemin racine doit forcément être valide aussi AMHA
Marsh Posté le 03-09-2004 à 17:39:16
tout cela est bien bon à savoir... comme ça on peut plus se tromper !!! et ça marche partout ! je devrais mettre des serverdocumentroot partout !!!
vive les serverdocumentroot !!!
youpi !
Marsh Posté le 03-09-2004 à 17:51:36
Au pire ( ou au mieux ) tu fais un fichier d'inclusions maîtresses, tu le poses en racine de ton site, et tu l'inclut au début de chacun de tes fichiers ( en relatif puisque tu connais toujours sa position).
Dedans tu mets :
$chemin_images = $_SERVER["DOCUMENT_ROOT"]."/images";
$chemin_includes = ......
$chemin_modules = .....
$chemin_truc_machin = .....
Comme ça dans ton code, tu utilises toujours une variable valide.
Le jour où document_root n'est plus valide, et ben tu trouves autre chose
Marsh Posté le 03-09-2004 à 17:57:11
Snoopy71 a écrit : Au pire ( ou au mieux ) tu fais un fichier d'inclusions maîtresses, tu le poses en racine de ton site, et tu l'inclut au début de chacun de tes fichiers ( en relatif puisque tu connais toujours sa position). |
c ce que je faisais avant (en quelques sortes) pour mes images... je faisais une variable $pathimages et je concatenais dans l'url... Mais le probleme c que j'utilise un Editeur que tout le monde deteste... Dreamweaver (Bouuuuuuuuuuh !!! la honte ! )... et quand tu fais comme ça bah... tes images apparaisnet en gris car il fait pas la liaison ! alors j'ai arreté...
Mais c clair que dans d'autres cas c super interessant !
Marsh Posté le 04-09-2004 à 18:11:11
Et voila donc comment on fait un code pourri avec DW
I'm outside...
Marsh Posté le 02-09-2004 à 16:39:20
bon voila.. la structure de mon site est comme ça :
http://www.monsite.net
/images/mesimages.gif
/paiement/mesfichierpaiementsecurise.php
/php/home/index.php
/php/commandes/index.php
etc etc...
si je vais dans "commandes"
l'url est donc : http://www.monsite.net/php/commandes
et si de commandes je veux faire un include d'un fichier qui se trouve dans "paiement"
logiquement je devrais faire : include('/paiement/monfichier.php');
... mais là ça marche pas !