probleme de chemin

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : probleme de chemin

par thehawk » 17 mai 2007, 10:44

oui bien sur il faut que tu tienne compte du chemin de gestion_dico.php

par ours-blanc- » 17 mai 2007, 09:51

ben en fait, la page qui est lue par le navigateur est gestion_dico.php
dans cette page il y a un include de fiche .php
et dans fiche.php il y a un include de parametres.php

ca voudrait dire que pour inclure parametres.php il faut que je tienne compte de la position de gestion_dico.php,?

par Ryle » 16 mai 2007, 14:06

Effectivement, comme l'a dit lem, contrairement à unix, un serveur windows n'est pas sensible à la casse des noms de fichiers... :)

En revanche je m'interroge.. tu as renommé tes fichiers et dossiers ? que sont devenus "dico" et "fiche.php" ? on a ici un "dictionnaire" et "gestion_dico.php" ?

(bon ok ça change rien par rapport au fichier qui fait l'inclusion, mais peut être ne travailles-tu pas sur le bon ou as-tu d'autres loupés dans les noms et chemins des fichiers inclus ?)

par lem » 16 mai 2007, 13:11

Ca m'étonnerait, windows s'en fiche.
Si c'est le cas, à ce moment là, c'est idem pour Program Files.

par ours-blanc- » 15 mai 2007, 16:20

alors bilan des courses:
il ne trouve pas le fichier. (il y est pourtant!)
dirname me renvoie ca : ../dicobio
et le chemin complet:c:/program files/easyphp1-8/www/sitenovabiotis/zone-entreprise/dictionnaire/gestion_dico.php


y'a un truc, par contre, dans le chemin complet il ecrit zone-entreprise alors que dans l'arborescence il y a des majuscules: Zone-Entreprise, peut etre c'est ca qui deconne.

par Ryle » 15 mai 2007, 10:34

J'ai jeté un coup d'oeil rapide dans la doc, le "." est peut être du à la version de php, selon si tu es avant ou après 4.3.0 .. donc peut être pas ça le soucis...

Essayes quelques tests du genre :
echo is_file("../dicobio/parametres.php") .'<br />';  // voir s'il le trouve
echo dirname("../dicobio/parametres.php") .'<br />';  

echo $_SERVER['SCRIPT_FILENAME'].'<br />'; // pour vérifier où tu es
..
ca permettra peut être de trouver une piste :)

par ours-blanc- » 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

par Ryle » 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("../");

par ours-blanc- » 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.

par ours-blanc- » 14 mai 2007, 12:31

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

par lem » 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 ".." ?

par ours-blanc- » 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. :(

par sadeq » 14 mai 2007, 11:18

dans quel fichier et dossier se trouve la classe où la fonction executequery() est écrite ?

par ours-blanc- » 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(); }

par ours-blanc- » 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