include et chemin absolu

include et chemin absolu - PHP - Programmation

Marsh Posté le 16-11-2005 à 10:23:07    

voilou, j'utilise un include pour me connecter à ma base de donnnée  
 
 
 

Code :
  1. include ('../admin/connexion.php');
  2. mysql_connect($hostname,$mysqluser,$mysqlpswd);
  3. mysql_selectdb($database) or die($diemessage);


 
cela fonctionne nickel en chemin relatif mais en absolu je n'y arrive pas...
Mon fichier connexion est accessible sous http://site.com/admin/connexion.php
Sur le serveur ftp de online.net : /www/admin/connexion.php
 
j'ai essayé include ('/admin/connexion.php');
et include ('/www/admin/connexion.php'); non plus ...

Reply

Marsh Posté le 16-11-2005 à 10:23:07   

Reply

Marsh Posté le 16-11-2005 à 10:46:47    

weed a écrit :

Sur le serveur ftp de online.net : /www/admin/connexion.php

normal, le chemin ftp est relatif à ton dossier sur le serveur
pour avoir le chemin absolu utilise un truc du genre : dirname(__FILE__)

Reply

Marsh Posté le 16-11-2005 à 10:48:36    

Tu as getcwd() pour récupérer le repertoire courant...


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 16-11-2005 à 13:25:05    

moi, j'utilise $_SERVER["DOCUMENT_ROOT"] devant tous mes noms de chemins absolus.

Reply

Marsh Posté le 17-11-2005 à 15:03:24    

euhh moi aussi j'utilisais $_SERVER["DOCUMENT_ROOT"]  pour connaitre le repertoire courant du fichier php.
 
Mais la cela ne resouds pas mon souci.
 
L'interet d'un chemin absolu dans un include, c'est que quelque soit l'emplacement du fichier sur le serveur, il pointera toujours vers mon fichier connexion.php.
 
Connaitre le repertoire courant ne m'apporte pas grand chose. J'ai peut etre pas compris ce que vous vouliez dire ...
 
qu'est ce que vous me proposez de mettre dans mon include ?  
include ( ???? connexion.php )

Reply

Marsh Posté le 17-11-2005 à 15:22:54    

$_SERVER["DOCUMENT_ROOT"], c'est pas la position de la racine du site web dans l'arborescence du disque dur?
Si c'est le cas, alors à partir de là, et de la position du fichier à inclure dans l'arborescence du site, on peut inclure ce qu'on veut.
 
Et si $_SERVER["DOCUMENT_ROOT"] indique le répertoire courant et non pas la racine du site, alors il susffit de le retravaillé à partir de la position du fichier pour retomber sur ses pattes.
 
PS : Là où ca devient coton, c'est si le serveur contient des répertoires web virtuels par ce que là, à par si le serveur indique à quel dossier du disque correspond tel dossier du serveur, il devient impossible d'indiquer à chercher le fichier sur le disque à partir de sa position sur le site.

Reply

Marsh Posté le 17-11-2005 à 15:29:44    

quel idiot que je suis ....
 
en effet il fallait mettre ca et zou :
 

Code :
  1. include ($_SERVER["DOCUMENT_ROOT"].'/admin/connexion.php');


 
merci à vous tous

Reply

Marsh Posté le 18-11-2005 à 13:50:15    

weed a écrit :

quel idiot que je suis ....
 
en effet il fallait mettre ca et zou :
 

Code :
  1. include ($_SERVER["DOCUMENT_ROOT"].'/admin/connexion.php');


 
merci à vous tous


 
ben oui :) Moi, c'est ce que je fais pour mes applis php...

Reply

Marsh Posté le 18-11-2005 à 14:19:26    

rufo a écrit :

ben oui :) Moi, c'est ce que je fais pour mes applis php...


idem .. c'est tellement plus agréable d'avoir des chemins absolus et une architecture de scripts quand on code ..
 
je ne saurais plus m'en passer d'ailleurs ..

Reply

Marsh Posté le 18-11-2005 à 14:20:39    

Lorsque la racine effective du site n'est pas le documentroot, ça se complique, néanmoins... :whistle:


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 18-11-2005 à 14:20:39   

Reply

Marsh Posté le 21-01-2006 à 03:03:53    

:hello:  
 
$_SERVER["DOCUMENT_ROOT"]."ma/racine/effective/" ça suffit po ?

Reply

Marsh Posté le 21-01-2006 à 11:13:55    

lkolrn a écrit :

:hello:  
 
$_SERVER["DOCUMENT_ROOT"]."ma/racine/effective/" ça suffit po ?


 
Pas dans mon cas, mais je suis un cas particulier...la racine effective n'est pas imposée.


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 13-02-2007 à 10:03:17    

weed a écrit :

quel idiot que je suis ....
 
en effet il fallait mettre ca et zou :
 

Code :
  1. include ($_SERVER["DOCUMENT_ROOT"].'/admin/connexion.php');


 
merci à vous tous


 
(Désolé de ressortir un vieux post... Au moins, ça prouve que j'ai cherché... mais je n'ai pas trouvé chaussure à mon pied...)
 
 
Je n'ai pas encore essayé $_SERVER["DOCUMENT_ROOT"] en site distant, mais tout ce que je sais, c'est que ça ne marche pas en local (j'utilise WAMP): Ca va me chercher l'arborescence C: /........./wamp/www/test/mon_fichier_à_inclure.php!
 
Comment est-ce que je pourrais faire pour que mon site soit le même en local en en distant?
Merci d'avance!


Message édité par Mploufeur le 14-02-2007 à 13:14:33
Reply

Marsh Posté le 14-02-2007 à 11:14:29    

pour le chemin absolu utilise plutôt /admin/etc... en fait, / représente la racine de ton site


---------------
http://www.chances-de-gagner.fr
Reply

Marsh Posté le 14-02-2007 à 13:12:34    

franzBesac a écrit :

pour le chemin absolu utilise plutôt /admin/etc... en fait, / représente la racine de ton site


Bonjour, et merci de se préoccuper de mon soucis...
 
Cependant, j'aimerais utiliser un chemin relatif, histoire (par exemple) de pouvoir développer mon site en local, puis de le mettre sur un serveur distant pour exploitation. Ca me permettrai également de déplacer le site en cas de besoin, le tout sans avoir à changer le code.

Reply

Marsh Posté le 03-03-2007 à 22:50:56    

yop Mploufeur, au contraire ca fait plaisir de retrouver mon thread. Cela veut dire que ma question n'etait pas si stupide que ca  [:alrick] et que je n'etais pas le seul a me poser la question  [:talium]

 

et bien normallement comme tu as pu le voire sur mon premier post, on peux utiliser des chemins relatifs mais ce n'est pas tres propre car non conforme W3C je crois ...

 

Ce code ne fonctionne pas chez toi ?  [:axlrose]

Code :
  1. include ('../admin/connexion.php');
 

Si tu utilises une variables PHP qui t'indique à partir de quel chemin tu dois partir, il n'y aura pas de problème.
Tu pourras deplacer ton site sur ton serveur distant.

 

Tu peux utilser cette variable : $_SERVER["HTTP_REFERER"]
par exemple, sur ma page phpinfo, elle me renvoie : http://127.0.0.1:4545/home/
Je la trouve d'ailleur mieux que la variable $_SERVEUR['DOCUMENT_ROOT']


Message édité par weed le 03-03-2007 à 22:51:08
Reply

Marsh Posté le 05-03-2007 à 19:32:59    

N'utilise jamais le REFERER, c'est bancal à mort :(

Reply

Marsh Posté le 05-03-2007 à 22:38:53    

FlorentG a écrit :

N'utilise jamais le REFERER, c'est bancal à mort :(


 
Et en plus, il y a une mode d'attaque sur le referer en ce moment..

Reply

Marsh Posté le 02-09-2007 à 13:14:15    

Un petit up pour ceux qui ont pas mal cherché comme moi.
 
Pour que votre code fonctionne partout (wamp ou lamp, que l'on utilise ou non des slash / ou des antislash \), en ligne de commande ou via un serveur web, même lorsqu'un include fait appel a un include dans autre dossier qui fait lui-même appel a un autre include qui est dans un autre dossier (..je suis clair?  :) ) :
 
 

Code :
  1. include (realpath(dirname(__FILE__).'/myfunction.php'));
  2. include (realpath(dirname(__FILE__).'/mydir/myfunction.php'));
  3. include (realpath(dirname(__FILE__).'/../anotherdir/myfunction.php'));


 
Un code vraiment libérateur... non ??  :love:  
 
Pour booster le référencement, n'hésitez pas a ajouter un petit de up de remerciement !
(Merci a Jonny Rylands http://fr2.php.net/manual/fr/funct [...] .php#56773)


Message édité par cybergomo le 02-09-2007 à 13:19:20
Reply

Marsh Posté le 02-09-2007 à 19:13:04    

Je doute que realpath soit indispensable dans ce cas (mais ça ne coûte rien je suppose).


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 04-09-2007 à 00:40:00    

merci à toi aussi pour ce up cybergomo tres utile.

Reply

Marsh Posté le 15-10-2007 à 17:02:20    

Bonjour a tous,
Un petit up pour ce pb que je trouve pas anodin du tout.
Je rencontre le meme soucis, a savoir que le include avec un chemin absolu (pour eviter d avoir a rechercher a chaque fois le chemin relatif) ne fonctionne pas en local (avec WAMP) mais c'est ok en distant.
J ai essayé  

Code :
  1. include('../../preference.php');
  2. // include('/wavart/preference.php');
  3. // include ($_SERVER["DOCUMENT_ROOT"]"./preference.php" );
  4. // include_path=".;c:\php\includes";
  5. //include (realpath(dirname(__FILE__).'/preference.php'));


 
ya rien qui marche :??:
 
Une idée?
 
Merci

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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