chemin relatif ou absolu

chemin relatif ou absolu - PHP - Programmation

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 !

Reply

Marsh Posté le 02-09-2004 à 16:39:20   

Reply

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')

Reply

Marsh Posté le 02-09-2004 à 17:23:21    

je vais aller fouiller mon php.ini je crois.. ça peut servir

Reply

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).

Reply

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'];

Reply

Marsh Posté le 03-09-2004 à 12:54:00    

si je fais $_SERVER['DOCUMENT_ROOT']."/paiement"... ça marche
mais c un peu galere !

Reply

Marsh Posté le 03-09-2004 à 14:05:31    

freed102 a écrit :

si je fais $_SERVER['DOCUMENT_ROOT']."/paiement"... ça marche
mais c un peu galere !


 
moi j'utilise les "/.." pour me balader mais c'est autant la galère à mon avis...


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
Reply

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

Reply

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....
 
Le chemin racine est normalement dispo dans la variable $_SEVER['DOCUMENT_ROOT'];


 
Personnellement je déconseille les liens absolus ... tout simplement parceque le jour où vous allez changer d'hebergeur ... bonjour la galère.

Reply

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 !

Reply

Marsh Posté le 03-09-2004 à 17:00:55   

Reply

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 :)
 
++

Reply

Marsh Posté le 03-09-2004 à 17:09:08    

$_SERVER['DOCUMENT_ROOT'] donne le chemin complet... même sous windows ( c:/program files/....) :o  
Et quand tu changes d'hébergeur, le chemin racine doit forcément être valide aussi AMHA

Reply

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 ! :bounce: :bounce: :bounce:

Reply

Marsh Posté le 03-09-2004 à 17:51:36    

Au pire ( ou au mieux  :o ) 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 :D

Reply

Marsh Posté le 03-09-2004 à 17:57:11    

Snoopy71 a écrit :

Au pire ( ou au mieux  :o ) 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 :D


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 ! :heink: )... 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 !

Reply

Marsh Posté le 04-09-2004 à 18:11:11    

Et voila donc comment on fait un code pourri avec DW :D
 
I'm outside...

Reply

Marsh Posté le 04-09-2004 à 18:37:16    

en attendant ça aide bien ! :p

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed