Parser des répertoires

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 : Parser des répertoires

par Calimero » 19 janv. 2009, 00:10

Pas de souci, c'est cool que tu t'en sois sorti. @+

par Hywan » 18 janv. 2009, 23:59

Sauf que ce que tu demandes est impossible. Si tu modifies ton architecture, tu auras forcément des soucis.
Sinon, il te faut une constante vers les dossiers demander, c'est une solution propre mais longue à mettre place si tu as beaucoup de dossiers. Un truc du genre :
// À la racine, le fichier Path.php
define('DS',          DIRECTORY_SEPARATOR);
define('PATH_ROOT',   dirname(__FILE__));
define('PATH_MODULE', PATH_ROOT . DS . 'Modules');
define('PATH_OTHER',  PATH_ROOT. DS . 'Other');
Et dans ton fichier de module :
require dirname(__FILE__) . '/../Path.php');
require PATH_MODULE . DS . 'EnTete.php');
On voit la limitation, à savoir que tu dois quand même te repérer par rapport au fichier Path.php. C'est un moindre mal. C'est le mieux que l'on puisse avoir je pense.

Pour ceux qui ne savent pas, DOCUMENT_ROOT peut peut-être être modifiée par un intrus, on évite de l'utiliser (même si c'est difficilement faisable de la modifier, ça l'est et c'est donc suffisant pour avoir des doutes).

Normalement, quand on construit une application, on évite de modifier l'architecture toutes les deux heures, ça me paraît logique … Sinon, c'est qu'il y a un problème dans ton application.

Sinon, encore une solution, tu peux travailler avec des chemins relatifs mais par groupe de dossiers. C'est à dire : on a à la racine trois dossiers, chacun à des sous-dossiers et tous ces dossiers n'ont pas connaissances des sous-dossiers des autres dossiers à la racine, seulement des sous-dossiers du même dossier. Je m'explique :

Code : Tout sélectionner

A/ aa/ aaa/ aab/ aac/ ab/ ac/ aca/ B/ ba/ bb/ bc/ bca/ etc.
Les groupes sont A et B. aaa connaît aac ou aca ou encore ab, mais pas ba ou bca. Tu peux donc travailler en chemin relatif dans A, pareil dans B. Tu peux donc déplacer A et B comme tu veux où tu veux. Le soucis c'est si un sous-dossier de A veut communiquer avec un sous-dossier de B, ils sont alors liés et ton architecture se fige.

T'as saisi le problème ? C'est un problème de logique, rien de plus. Il faut résoudre ce problème d'architecture.

par coco68100 » 18 janv. 2009, 23:53

Et je remercie tout ceux qui ont participés a ce probleme
Je m'excuse encore si j'ai été trop impulsif ou mal interpreté.
Mais sachez que je remercie vraiment tout le monde pour m'avoir aidé.
Calimero accept mes excuses les plus plates.(vraiment navré)
Si je suis arrivé a quelque choses c'est grace a vous tous.
Bonne soirée.Amicalement christophe

Resolu

par coco68100 » 18 janv. 2009, 23:38

Oui cette syntaxe marche egalement !Mais attention
require dirname(dirname(__FILE__)).'/Modules/EnTete.php';"
La apparament on redescend d'un niveau ce n'est pas un chemin absolu si je deplace Cours.php dans un sous Repertoire de Cours ca ne marche plus.
Mais merci quand meme

La seule qui convienne a peut pres pour l'instant
require $_SERVER['DOCUMENT_ROOT'].'/Modules/EnTete.php';
Mais ca m'embete de garder document root je comprend pas pourquoi je n'y arrive pas avec
require $_SERVER['SERVER_NAME'].'/Modules/EnTete.php';
J'arrete la :-( merci a tous
Resolu

par Hywan » 18 janv. 2009, 23:10

Je serai curieux que dirname(dirname(__FILE__) etc. ne fonctionne pas ?

par coco68100 » 18 janv. 2009, 23:09

Si j'ai blessé quelqu'un je m'en excuse loin de la mon attention
Mes plus plate excuse a Calimero et aux autres
C'est vrai je me suis emporté.Pardon
et je tiens a vous remercier quand meme pour vos efforts.
Desolé christophe

presque

par coco68100 » 18 janv. 2009, 23:05

voila une syntaxe qui marche et pas que en local mais elle ne me satisfait que a moitier les connaisseur du ['DOCUMENT_ROOT'].comprendron le problem
Ca marche mais je ne peus le mettre en resolu ce n'est pas ce que je souhaite.
require $_SERVER['DOCUMENT_ROOT'].'/Modules/EnTete.php';
Merci a ceux qui perseverons

par albat » 18 janv. 2009, 22:58

Il suffit de lire bien.
Ca sert a rien de fuire le prob ou de faire comme calimero il faut le resoudre s'il vous plait
Je ne vous comprend pas!!!!
C clair
Modération :
Ce genre d'accusation n'est pas accepté ici. :evil:
Calimero a passé du temps à étudier ta question et à te proposer des réponses.
HyWaN a également réfléchi à ton problème.

Si leurs réponses ne t'ont pas permis de le résoudre,
c'est peut-être que tu n'as pas donné tous les éléments nécessaires.

Quoi qu'il en soit, les valeurs que nous apprécions sur ce forum sont : courtoisie, humilité et respect.
Si tu fais preuve d'arrogance, de colère, d'impatience,... la question sera vite réglée.

Merci de corriger le tir.

par coco68100 » 18 janv. 2009, 22:57

Bref c pas grave Merci quand meme pour vos efforts!
Si quelqu'un d'autre a une reponse correct je suis preneur.
Merci a ceux qui modestement se pencherons sur mon probleme!
Aucune solutions correct pour l'instant.
Apparament c'est vraiment un métier lol
Question:
chemin absolu pour require

par Hywan » 18 janv. 2009, 22:45

L'appliquer deux fois ça signifie dirname(dirname(…)). C'est moi où t'es drôlement agressif ? On ne fuit pas le problème d'une part, et on est ici pour te faire trouver la réponse et non pas pour te la donner. Alors on se calme ou ça va modérer sévère dans les chaumières :evil:

par Calimero » 18 janv. 2009, 22:43

Ca sert a rien de fuire le prob ou de faire comme calimero il faut le resoudre s'il vous plait
Je ne vous comprend pas!!!!
C clair
Si ce que je fais ne sert à rien, rassure toi : je ne ferai plus rien du tout pour toi, ni aujourd'hui ni plus tard :-) Bonne journée.

par Invité » 18 janv. 2009, 22:40

Il suffit de lire bien.
Ca sert a rien de fuire le prob ou de faire comme calimero il faut le resoudre s'il vous plait
Je ne vous comprend pas!!!!
C clair

par Invité » 18 janv. 2009, 22:37

Comment ca ""il suffit d'appliquer deux fois dirname""
Tape la syntaxe stp

par Invité » 18 janv. 2009, 22:35

'/Modules/EnTete.php'

par Hywan » 18 janv. 2009, 22:08

La fonction dirname() retourne les dossiers pour un chemin. Donc ça te donne le répertoire courant. Si tu veux remontrer d'un dossier, il suffit d'appliquer deux fois dirname() …