probleme de chemin

Eléphant du PHP | 110 Messages

14 mai 2007, 09:31

salut alors voila le soucis.

J'ai un repertoire dico qui contient un script php (fiche.php) qui me pose probleme.
il y a aussi un autre repertoir en parallele de dico (appellé dicobio) qui contient un fichier(parametres.php) que je veux appeller dans mon premier script fiche.php.
je fais donc include("../dicobio/parametres.php");
mais ca ne marche pas.

auriez vous une idée?

merci!

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

14 mai 2007, 09:56

C'est quoi qui ne marche pas? donne nous le message d'erreur.
Mais, on peut te rassurer que le chemin de ton include est bien écrit selon ce que tu as expliqué. (je l'ai copié telquel et ça marche chez moi)
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène

Eléphant du PHP | 110 Messages

14 mai 2007, 10:09

voila le message d'erreur (j'ai pas tout mis mais apres c'est pas interessant, il me dit qu'ils trouvent pas les variables qui sont dans parametres.php)

Code : Tout sélectionner

Warning: executequery(../dicobio/parametres.php): failed to open stream: No such file or directory in c:\program files\easyphp1-8\www\sitenovabiotis\zone-entreprise\classes\dataDB\dico\fiche.php on line 639 Warning: executequery(): Failed opening '../dicobio/parametres.php' for inclusion (include_path='.;C:/PROGRAM FILES/EASYPHP1-8\php\pear\') in c:\program files\easyphp1-8\www\sitenovabiotis\zone-entreprise\classes\dataDB\dico\fiche.php on line 639

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

14 mai 2007, 10:28

C'est quoi la fonction executequery() et que fait-elle ?
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène

Eléphant du PHP | 110 Messages

14 mai 2007, 10:45

la fonction execute query execute la requete $query passée en parametre
il y a donc besoin de se connecter a la base de donnée et parametre.php contient les parametres pour la connection.
en fait c'est une methode d'un objet (ici fiche) dans chaque methode quasiment j'inclus parametres.php parceque j'ai pas trouve comment faire autrement, si je le met en haut de ma classe ca marche pas.

merci de ton aide

lem
Eléphant du PHP | 108 Messages

14 mai 2007, 10:46

Tu pourrais nous mettre ici le code de ta fonction executequery() ?
Merci.
Lem.

Eléphant du PHP | 110 Messages

14 mai 2007, 10:58

Code : Tout sélectionner

function executeQuery($query) { include("../dicobio/parametres.php"); $bd = new base_de_donnees($serveur,$bd,$login,$mot_de_passe); $this->protection(); $bd->requete_sql($query); $resultat = $bd->resultat_requete(); return $resultat; $bd->deconnexion(); unset($bd); }
voila la fonction. les parametres $serveur,$bd,$login,$mot_de_passe sont contenus dans le fichier parametres.php

Eléphant du PHP | 110 Messages

14 mai 2007, 11:03

et voila le constructeur de ma classe base de donnee.
C'est le seul endroit ou j'ai besoin des parametres.

Code : Tout sélectionner

function base_de_donnees($serveur,$bd,$login,$motDePasse) { $this->serveur = $serveur; $this->nom = $bd; $this->login = $login; $this->motDePasse = $motDePasse; $this->connexion(); }

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

14 mai 2007, 11:18

dans quel fichier et dossier se trouve la classe où la fonction executequery() est écrite ?
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène

Eléphant du PHP | 110 Messages

14 mai 2007, 11:44

la fonction executequery se trouve dans fiche.php

et la classe base de donnees se trouve dans un autre repertoire (dans dicobio)

J'ai fait un autre test. Quand le chemin indique un fichier se situant dans le dossier dico ca marche.
par contre des que je met les ../ pour ressortir du dossier ca ne marche plus. :(

lem
Eléphant du PHP | 108 Messages

14 mai 2007, 12:16

Question idiote mais on ne sait jamais.. Es tu sûr d'avoir les droits nécessaires pour traverser le répertoire parent ".." ?
Lem.

Eléphant du PHP | 110 Messages

14 mai 2007, 12:31

ben je pense que oui car je suis en local sous windows avec easyphp, enfin je vais verifier. merci

Eléphant du PHP | 110 Messages

14 mai 2007, 14:34

bon ben en fait ca marche avec la fonction require + chemin absolu
recupere avec document_root.
Je sais pas ce qui allait pas :( par contre.
je vais voir quelle est la difference entre include et require maintenant.
merci de votre aide
bonne journée.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

14 mai 2007, 14:48

La différence, c'est que si le fichier n'est pas trouvé, avec include, le script génère une alerte et poursuis, avec require, il s'arrête immédiatement :)

Juste une idée comme ça... qu'est ce que tu obtiens si dans ton fichier tu fais un :
echo dirname("../");
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 110 Messages

15 mai 2007, 10:09

merci ryle, je crois qu'il y a un probleme.
il me retourne . :(

si j'ai bien compris ca veut dire que le nom du dossier qui contient ../ est en fait le repertoire courant.
mais la je comprends pas pourquoi ca fait ca.

c'est ca?

merci