Page 1 sur 2

probleme de chemin

Posté : 14 mai 2007, 09:31
par ours-blanc-
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!

Posté : 14 mai 2007, 09:56
par sadeq
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)

Posté : 14 mai 2007, 10:09
par ours-blanc-
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

Posté : 14 mai 2007, 10:28
par sadeq
C'est quoi la fonction executequery() et que fait-elle ?

Posté : 14 mai 2007, 10:45
par ours-blanc-
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

Posté : 14 mai 2007, 10:46
par lem
Tu pourrais nous mettre ici le code de ta fonction executequery() ?
Merci.

Posté : 14 mai 2007, 10:58
par ours-blanc-

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

Posté : 14 mai 2007, 11:03
par ours-blanc-
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(); }

Posté : 14 mai 2007, 11:18
par sadeq
dans quel fichier et dossier se trouve la classe où la fonction executequery() est écrite ?

Posté : 14 mai 2007, 11:44
par ours-blanc-
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. :(

Posté : 14 mai 2007, 12:16
par lem
Question idiote mais on ne sait jamais.. Es tu sûr d'avoir les droits nécessaires pour traverser le répertoire parent ".." ?

Posté : 14 mai 2007, 12:31
par ours-blanc-
ben je pense que oui car je suis en local sous windows avec easyphp, enfin je vais verifier. merci

Posté : 14 mai 2007, 14:34
par ours-blanc-
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.

Posté : 14 mai 2007, 14:48
par Ryle
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("../");

Posté : 15 mai 2007, 10:09
par ours-blanc-
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