Précédent   Forum des professionnels en informatique > PHP > Langage > Fichiers
Fichiers Forum d'entraide sur les fichiers avec PHP. Avant de poster -> FAQ fichiers et Sources fichiers
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 20/12/2006, 16h02   #1
Invité régulier
 
Inscription : mai 2004
Messages : 35
Détails du profil
Informations personnelles :
Âge : 31

Informations forums :
Inscription : mai 2004
Messages : 35
Points : 6
Points : 6
Par défaut Problème d'include et sous-répertoires

bonjour a tous,

alors voila mon site avance tres bien mais j'ai un soucis avec la fonction "include".

pour commencer je vous explique comment est disposer mon site :

a la racine :

index.php qui fait un include sur chacun des fichier suivant :
  • corps.php
  • menu.php
  • header.ph
  • footer.php

dans le répertoire galerie :

index.php qui fait un include sur chacun des fichier suivant :
  • corps.php qui fait appelle a un objet flash (ma galerie) présent dans ce répertoire
  • menu.php
  • header.ph
  • footer.php

un répertoire images où sont stocké les images du design du site.

chacun des différents fichiers php enumerer précédemment sont identiques a un détails prêt :
les chemins vers les images (entre autres) dans les fichiers php dans la racine sont du type images/entete.jpg etc
et ceux dans les fichiers php dans le répertoire galerie sont du type ../images/entete.jpg etc

de cette manière du moment que je fait une modif dans mes fichiers php a la racines je suis obligé (cela va de soi) de faire les même modif dans ceux présents dans le répertoire galerie, ce qui n'est pas pratique du tout.

du coup je voudrais ne plus avoir ces fichiers php dans le répertoire galerie et les avoir donc uniquement dans la racine. de cette manière je n'aurais plus a modifier les fichiers php présents dans tous les sous-répertoires. (j'espère que vous me suivez).

cela doit être simple mais le plus gros de mon soucis est le suivant :
l'objet flash qui genere ma galerie, si je l'appelle depuis un fichier présent dans la racine, l'anim va se lancer mais comme les fichiers de config ne sont pas dans la racine cela n'affiche pas ma galerie. voila en gros pourquoi j'ai mes fichiers php en double dans la racine et dans le sous-répertoire galerie.

ma question est la suivante :

comment peut-on faire appelle a un fichier php tout en prenant en compte l'origine de l'appel ?

je sens que tout ce que j'ai dis n'est pas du tout clair. si vous ne comprenez pas n'hésitez pas je trouverai une solution pour retranscrire de manière plus simple mon soucis.

merci d'avance pour toute l'aide que vous pourrez m'apporter

cordialement Didou

ps la solution serait de mettre tous les fichiers dans la racine mais alors la j'aurai un nombre pas possible de fichiers dans la racine et cela risque d'être un peu confus de gérer tout cela.
didou038 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2006, 16h44   #2
Membre confirmé
 
Inscription : décembre 2006
Messages : 297
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 297
Points : 248
Points : 248
je te conseil require() à include()

Si ton index.php inclue des fichiers dans des répertoires, ses fichiers étant inclue dans l'index de la racine, alors le chemin partira à partir de la racine
(l'include ou le require fait que ton fichier index contiendra les informations disséminé dans l'arborescence de ton site)

Je pense ne pas avoir compris totalement, mais si tu avais un bout de code pour l'exemple, ou alors un shema?

désolé, mais j'espère faire avancer le schmilblick...
juJuv51 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2006, 01h11   #3
Membre émérite
 
Inscription : juin 2002
Messages : 1 013
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 1 013
Points : 959
Points : 959
je t'explique comment je fais pour remédier à ce genre de situation :

phase 1 : création de deux variables de session, l'une contenant le chemin d'accès à la racine, l'autre contenant le chemin d'accès au répertoire galerie.

exemple phase 1 si ma page appelante est à la racine :
Code :
1
2
$_SESSION['path_racine'] = '';
$_SESSION['path_galerie'] = 'galerie/';
exemple phase 1 si ma page appelante est dans le répertoire galerie
Code :
1
2
$_SESSION['path_racine'] = '../';
$_SESSION['path_galerie'] = '../galerie/';
cette dernière instruction peut être simplifiée, mais je l'ai faite ainsi pour le cas où il y a plusieurs répertoires de niveau 1 tel que galerie

phase 2 : je fais mes include et tous mes liens dans le menu en faisant référence à ces variables de session

exemple d'un lien dans le fichier menu.php :
Code :
echo '<a href="', $_SESSION['path_racine'], 'index.php">accueil</a>';
MAIS : si j'ai plusieurs répertoires de niveau 1 (je considère la racine comme niveau 0), je dois créer autant de variables de sessions que de répertoires. si j'ai de nombreuses pages et que je crée un répertoire de plus, je dois rajouter une ligne dans chaque page. ce n'est pas pratique. DONC :

phase 3 : j'ai créé une fonction à laquelle je fais systématiquement appel dans chaque page. Cette fonction créera les variables de session nécessaires.
Exemple de ma fonction :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
function menu_path($niveau)
	{
	// chemin des répertoires
	if ($niveau == 0)
		{
		$_SESSION['path_racine'] = '';
		$_SESSION['path_galerie'] = 'galerie/';
		}
	elseif ($niveau  == 1)
		{
		$_SESSION['path_racine'] = '../';
		$_SESSION['path_galerie'] = '../galerie/';
		}
	}
phase 4 : je fais appel à cette fonction dans chaque page :
si la page est dans le répertoire galerie, donc dans le niveau 1 :
PS : cette fonction est stockée dans ma bibliothèque de fonctions dont l'appel se fait dans ma première instruction par un include (après session_start bien sûr).

J'espère avoir été assez clair et avoir répondu à ton souci
francis m est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2006, 13h59   #4
Invité régulier
 
Inscription : mai 2004
Messages : 35
Détails du profil
Informations personnelles :
Âge : 31

Informations forums :
Inscription : mai 2004
Messages : 35
Points : 6
Points : 6
merci de votre aide !

en attendant vos reponse j'ai fait une modif. au lieu d'avoir les liens du type :
Code :
<img src="images/images-index/btn_galeries.jpg"
je les ai tous modifier comme suit :
Code :
<img src="http://www.forgotten.stars.free.fr/images/images-index/btn_galeries.jpg"
de meme pour les liens du menu vers les differentes pages.

du coup tout marche sans probleme et je pense que si je l'avais fait plus tot je me serai pas pris la tete comme se fut le cas.

merci encore de votre aide.

did
didou038 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2006, 23h33   #5
Membre émérite
 
Inscription : juin 2002
Messages : 1 013
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 1 013
Points : 959
Points : 959
oui bien sûr ta modification fonctionne

mais j'espère que tu la considères comme provisoire

car elle crée deux problèmes :
  • le jour où tu changes d'hébergeur (tu quittes free par exemple) tu peux refaire tous les liens de ton site
  • tu n'as pas la possibilité de contrôler ton site et tes liens en local (et je trouve cela primordial)
francis m est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/12/2006, 06h05   #6
Invité régulier
 
Inscription : mai 2004
Messages : 35
Détails du profil
Informations personnelles :
Âge : 31

Informations forums :
Inscription : mai 2004
Messages : 35
Points : 6
Points : 6
j'ai pensé exactement a ces 2 problemes lorsque je fait cette modif' en particulier en local.

pour le moment c'est du provisoire mais ça ne saurait tarder où le site sera vraiment bien optimisé !

je vais investir dans un bon bouquin de php et m'y plonger serieusement surtout concernant les sessions qui je pense une fois qu'on sait les gerer doivent regler un grand nombre de soucis.

d'ailleur si vous pouvez me guider vers un ouvrage complet, serieux et avec pas mal d'exemples/exercices je vous en serait reconnaissant !

merci a tous en cas pour votre patience et votre aide tant indispensable pour les debutants !

did
didou038 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/12/2006, 10h46   #7
Membre émérite
 
Inscription : juin 2002
Messages : 1 013
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 1 013
Points : 959
Points : 959
je n'ai pas lu de bouquins, seulement des tutoriels ici et là

mais les sessions c'est très simple
tu lis http://php.developpez.com/cours/sessions/ et cela suffira

et après tu prends le code que je t'ai indiqué plus haut et ton problème est réglé
francis m est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h55.


 
 
 
 
Partenaires

Hébergement Web