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 15/05/2007, 22h40   #1
Futur Membre du Club
 
Inscription : novembre 2006
Messages : 60
Détails du profil
Informations personnelles :
Âge : 25

Informations forums :
Inscription : novembre 2006
Messages : 60
Points : 17
Points : 17
Par défaut Problème include avec différents répertoires

Si je vous écris, c'est que vous pensez bien que j'ai un petit soucy,je suis actuellement en stage dans une école où je réalise un site internet.

Pour des raisons d'organisation, je m'éfforce à mettre différents dossiers où je range mes fichiers php. Un pour la connexion, un pour les fonctions, etc ...

Je vous présente la structure des fichiers que j'utilise et qui pose problème :
j'utilise 2 répertoires :
- connexion/liste_connexion.php : page qui présente les connexions établient
et au même niveau de répertoire, pour caricaturer le répertoire suivant est frère avec connexion ...
- fonctions/connexionBDD.php : fonctions qui se connecte à la BDD

mon code est le suivant pour utiliser la fonction depuis liste_connexion.php

Code :
1
2
include("../fonctions/connexionBDD.php");
// .. pour retourner à la racine de mon site
Ce qu'il y a de supprenenant, c'est que le résultat attendu est affiché mais en dessous des erreurs!

Mais avec une belle erreur ci dessus:
Citation:
Warning: include(../fonctions/connexionBDD.php) [function.include]: failed open stream: No such file or directory in E:\wamp\www\Ecole\connexion\liste_connexion.php on line 2

Warning: include()[function.include]:failed opening '..:fonctions/connexionBDD.php' for inclusion (include_path='.;C:\php5\pear') in
E:\wamp\www\Ecole\connexion\liste_connexion.php on line 2
Donc voilà je ne sais plus où donner de la tête après de multiples recherches et je précise que le ligne 2 est le bout de code que j'ai donné plus haut

en trifouillant encore sur le net : j'ai trouvé cela :

Citation:
Warning: Failed opening 'nom de fichier' for inclusion (include_path='') in nom du script php on line numéro de ligne
Traduction:

Attention: Echec à l'ouverture du fichier nom de fichier lors de l'inclusion
La théorie:

Le fichier à inclure n'a pas été trouvé.
En pratique:

Votre script entre dans les cas de figure suivants:

1. Le fichier (ou le chemin du fichier) n'existe effectivement pas
Solution: Corriger le nom du fichier passé en paramètre de la fonction include (ou le chemin).
2. Le fichier existe mais est inclus dans un script qui lui même est inclus dans un autre, et les chemins donnés sont des chemins relatifs. Comme les chemins relatifs des fichiers inclus sont relatifs au script executé. Si c'est un script A qui est executé et qui inclus un script B, qui lui même inclus in script C. Alors le chemin relatif du script C indiqué dans le script B, doit être relatif à la position du script A (le script executé). Ceci pose généralement problème car dans ce cas il est possible que le chemin ne soit plus valide si on execute directement le script B (le chemin relatif du script C indiqué dans le script B, devra alors être relatif à la position du script B). Il faut donc toujours donner un chemin complet ou bien déterminer dynamiquement le chemin relatif.
Solution:On peut aisement s'en sortir en utilisant la constante __FILE__ qui donne le chemin et le nom du script (pas celui qui est appelé mais celui qui fait l'include). Il faudra alors remplacer les include("chemin_relatif/script.php") par include(dirname(__FILE__)."/chemin_relatif/script.php").

Code :
1
2
3
<?php
include(dirname(__FILE__)."/chemin_relatif/script.php");
?>
Il est vrai que j'incluais 2 fois la même page dans une page, donc j'ai alors suivi leur conseil. J'ai même créé une fonction qui me permet de ne pas l'appelais 2 fois, mais toujours le même problème. Disons que maintenant je l'appelle 2 fois mais différament, je vous laisse comprendre avec un bout de code :

Code : PHP
Code :
1
2
3
4
5
6
7
8
<?php
session_start();
include (dirname(__FILE__)."/fonctions/connexionBDD.php");
function coordonnees()
{
   // ici on insére l'adresse de l'école dans la bannière
   try
   {

Donc en ayant toujours le même problème, j'ai utilisé "dirname(__FILE__)". Mais rien non plus. Donc peut-être l'un d'entre vous à une idée après ces précisions ... Du moins je l'espère.

Merci Beaucoup
Cordialement


2berte
2berte est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/05/2007, 22h56   #2
Membre Expert
 
Inscription : janvier 2005
Messages : 1 249
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : janvier 2005
Messages : 1 249
Points : 1 417
Points : 1 417
Si c'est juste un problème de double inclusion, utilise include_once().
vg33 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h23.


 
 
 
 
Partenaires

Hébergement Web