Inclure un fichier de n'importe où, online et easyphp

Inclure un fichier de n'importe où, online et easyphp - PHP - Programmation

Marsh Posté le 01-06-2009 à 13:05:30    

Bonjour,
 
je souhaiterais inclure un fichier (menu.php, config.php) dans la plupart des fichiers de mon site web.
Pour pouvoir modifier la structure du site sans changer les chemins d'include, il faut que je mette un chemin global.
 
Le problème est que je voudrais que ce soit compatible à la fois online et en local avec easyphp
seulement, le chemin global n'est pas le meme dans les deux cas, voila la page de base du site :  
online : $_SERVER["SCRIPT_NAME"] = /mon_user/index.php            
easyphp : $_SERVER["SCRIPT_NAME"] = /mon_site/index.php
 
Comment écrire ca pour que ca marche des deux côtés ?  
Et je ne veux pas appeler mon site "mon_user" car j'en ai plusieurs : /mon_site1, /mon_site2... en local
 
Merci


Message édité par DarWog le 01-06-2009 à 13:15:45
Reply

Marsh Posté le 01-06-2009 à 13:05:30   

Reply

Marsh Posté le 01-06-2009 à 13:17:41    

Qu'est-ce qui t'empêche de créer une structure identique sur ton hébergement et en local ?


---------------
http://www.aideinfo.com/  Whois adresses IP/domaines le plus évolué !!  FAQ Free Mobile
Reply

Marsh Posté le 01-06-2009 à 13:43:50    

sur mon hébergeur, je n'ai pas le choix, je suis dans /monuser/
en local, je suis dans /dossier/ où je choisis 'dossier', mais je ne vais pas l'appeller monuser, car j'ai plusieurs sites en local...

Reply

Marsh Posté le 01-06-2009 à 14:09:16    

Utilises un chemin dynamique.

Code :
  1. define ('ABSPATH', dirname(__FILE__) . '/');
  2.  
  3. include_once (ABSPATH . 'tonfichier.php');
  4. ?>


---------------
We deserve everything that's coming...
Reply

Marsh Posté le 01-06-2009 à 14:30:10    

cette commande renvoie le dossier du script exécuté, donc dépend du dossier du script. Je ne vois pas comment elle m'aide à inclure un fichier d'un autre endroit  
dont je ne connais pas l'emplacement relatif (car je veux pouvoir bouger les dossiers)
 
je veux inclure un fichier qui est :
distant : /monuser/inc/toto.php
local : /monsite/inc/toto.php
 

Reply

Marsh Posté le 01-06-2009 à 14:36:16    

ben c'est à toi de savoir la structure de tes fichiers. Et en partant d'un point absolue, tu peux accèder à tes fichiers par la suite en spécifiant le bon chemin dans ton include [:spamafote]
Avec des trucs du style "./../fichier.php" etc...


---------------
We deserve everything that's coming...
Reply

Marsh Posté le 01-06-2009 à 14:46:52    

Je connais le chemin global, mais le problème est que ce chemin global a deux possibilités (pour les liens <a href> ) :  
soit on est online (/monuser/...),  
soit on est offline (easyphp => /monsite/...).
 
Le problème est d'inclure le fichier de config avec un chemin absolu.
Ce qui d'ailleurs n'est pas /monuser ou /monsite
mais C:\websites\monsite en local
et /web/sites/vhbu3/2/.../public/www/monuser chez mon hébergeur
 
Une Solution :
if(ereg(/127.0.0.1), http_refferer)   $local='C:\websites\monsite'
else $local='/web/sites/vhbu3/2/.../public/www/monuser'
 
le problème est qu'il faut mettre ca dans toutes les pages su site :/


Message édité par DarWog le 01-06-2009 à 15:49:35
Reply

Marsh Posté le 01-06-2009 à 17:08:38    

Utilise un framework alors...

Reply

Marsh Posté le 01-06-2009 à 17:15:26    

PunkRod a écrit :

Utilise un framework alors...


C'est-à-dire ??

Reply

Marsh Posté le 01-06-2009 à 17:28:17    

créer un fichier de config php qui contient tout tes liens, un specifique au serveur et un specifique en locale,
ça ce passe comme ça généralement.
T'auras toujours des differences en local et sur ton serveur, comme le login à la bdd, l'ip de la BDD... donc autant  
faire un fichier maintenant tu gagneras du temps.
 
Par exemple j'utilise un fichier inc.conf.php qui contient :
 

Code :
  1. <?php
  2. session_start();
  3. define ('SITE_URL', 'http://localhost/leonard_vinci/'); //racine web à modifier
  4. define ('WORKSPACE_PATH','C:/wamp/www/vinci/');
  5. define ('MAIN_PATH', WORKSPACE_PATH.'leonard_vinci/'); //chemin physique à modifier
  6. define ('CLASSES_PATH',MAIN_PATH.'classes'.DIRECTORY_SEPARATOR);
  7. define ('MODELS_PATH', MAIN_PATH.'classes'.DIRECTORY_SEPARATOR.'models'.DIRECTORY_SEPARATOR);
  8. define ('CONTROLEURS_PATH',MAIN_PATH.'classes'.DIRECTORY_SEPARATOR.'controleurs'.DIRECTORY_SEPARATOR);
  9. define( 'DSN_BD','mysql://toto:toto@localhost/blabla'); // je passe par PEAR mais normalment ici tu definies ton login à ta bdd
  10. ?>

Reply

Sujets relatifs:

Leave a Replay

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