comprendre un bout de "code"

comprendre un bout de "code" - ASP - Programmation

Marsh Posté le 29-12-2011 à 14:16:06    

Bonjour, ayant lu les quelques recommandations sur comment poster dans cette categorie dans laquelle je fais mes premiers pas, je vais essayé d'être clair, courtois et concis mais je vous demanderais votre indulgence, je débute en programmation donc c'est pas évident

 

Pour faire au mieux et au plus simple, j'ai herité d'acces à une ressources contenant tout les fichiers d'un site assez basic en ASP. C'est un gros fatras. Les chemins de toutes les differentes pages, images ont été mis n'importe comment, empilé en vrac au fur et a mesure des besoins.
Donc j'essaye de faire retrouver une logique plus "informatique" à tout ça histoire de pouvoir modifier ensuite les pages plus facilement sans chercher qu'est-ce qui pointe vers quoi. Autant dire un travail de fourmi d'autant plus galère que j'apprends au fur et mesure la façon dont c'est codé...

 

Je suis a ce stade confronté a un pb de definition des chemins dans les fichiers .asp
J'ai reorganisé tout la ressource
Avant, Tout etait en vrac a la racine reseau/rubrique ou dans des dossiers style reseau/rubrique/test mal nommés et sans logique.

 

Maintenant a titre d'exemple j'ai fais ça
accueil.asp à la racine reseau/rubrique de le ressource pour atteindre l'accueil.
Dossier1 contenant la page1.asp
Dossier2 contenant la page2.asp
(...)
"Commun" contenant le dossier "images" et "system" (dans images il y a toutes les images, et dans systeme tous les scripts-fichier asp communs aux pages: header, footer et un carousel ainsi que les fichier css de style et mise en forme)

 

Deja je sais pas si je fais bien...
Ensuite j'ai commencé a modifier des liens (fonctions href et src )

 

ça marche plus ou moins bien (m'enfin la page d'accueil s'affiche parfaitement bien c'est aprés que ça pose probleme quand on fait appels aux fichiers .asp se trouvant des les repertoires) avec notamment cette commande qui me pose probleme:
<!-- include file="commun/system/footer.asp"--> qui est appelé dans les differentes pages.
ça me renvoi une erreur fichier introuvable alors que le chemin est bon et le fichier bien présent. (en fait idem avec la plupart des ligne faisant appel a "include" )

 

donc j'ai remplacé par <!-- #include virtual="chemin absolu de footer.asp"--> style "reseau/rubrique/commun/system/footer.asp" mais ça ne convient pas car raisonner en chemin absolu me pose des problemes de liens vers d'autres pages qui du coup cherchent des fichiers dans system alors que les fichiers son dans un autre repertoire. Y'a pas de retour a la racine ...  la racine etant reseau/rubrique et l'adresse du site http://hebergeur.fr/reseau/rubrique/ (ca me redirige vers l'accueil.asp)

 


donc:

 

1°) est-ce que la fonction "include file" est adapté a cette organisation? sachant que si j'ai bien compris, inclure ne semble fonctionner correctement que si je met tout a la racine  (???)

 

autre question:

 

2°) j'ai trouvé un script dans une des pages: header.asp ... que je ne comprends pas et je sollicite votre aide. Ca concerne justement la définition des chemins et des path et ce fichier est commun a toutes les pages. je soupçonne que mon probleme vienne de là mais comment le corriger?
 
si vous pouviez m'aider a le decrypter (signification des lignes) peut-etre est-ce la solution a mon probleme si je trouve la modif adéquat a faire pour redefinir les retour a la racine ou aux dossiers correctement.

 
Citation :

<%
'-------------- GESTION ET DEFINITION DES CHEMINS   ------------------------
raw = split(Request.ServerVariables("PATH_INFO" ),"/",-1,1)

 

top = ubound(raw)
rep =""
sous_rep =""

 

for x = 1 to top-1
 if x=1 then
  rep = raw(x)
 else
  if x=top-1 and raw(x)<> "rubrique"  then
   sous_rep = rep &"/"&raw(x)
  else
   rep= rep &"/"&raw(x)
  end if
 end if

 

next

 

url_server = Request.ServerVariables("SERVER_NAME" )

 

racine = "http://"&url_server&"/"&rep& "/"

 

'response.write racine & "<br/>" & racine_ssrep

 

repertoire = "dossier"
fichier = repertoire & "fichiers"

 

%>

 

je veux juste comprendre ce qu'impliquent les lignes ... j'avoue que je bite rien ...

 

L'affaire est complexe, je sais pas si j'ai été clair et dsl pour la longueur du post ... Merci a ceux qui liront l'ensemble du post et accepteront de m'aider


Message édité par BiBi_PoK le 29-12-2011 à 14:38:52
Reply

Marsh Posté le 29-12-2011 à 14:16:06   

Reply

Marsh Posté le 29-12-2011 à 16:46:55    

raw = split(Request.ServerVariables("PATH_INFO" ),"/",-1,1)

La variable d'environnement PATH_INFO est récupérée. Elle est découpée selon le séparateur "/". Ses parties sont mises dans le tableau nommé raw.

top = ubound(raw)

ubound donne la borne du haut du tableau, autrement dit le nombre d'éléments.
 
Ensuite, il y a une boucle sur tous les éléments du tableau pour recréer deux nouveaux chemins (rep et sous_rep). L'opérateur "&" sert à concaténer des chaines de caractères.

Reply

Marsh Posté le 29-12-2011 à 17:00:54    

merci pour le decryptage
autrement dit c'est ce qui permet de definir le chemin pour aller chercher un nouveau fichier ou une image appelée dans la page?  
est-ce que ça a un lien avec le chemin a declarer dans la fonction "inclure"?  
 
et la ce script limite les combinaisons de chemin a 1 rep (celui qui s'appel "rubrique"  avec " if x=top-1 and raw(x)<> "rubrique"  then " ) = ma racine + un sous rep a determiné selon ce qu'il y a de creer dans le repertoire "rubrique" racine==> donc si je creé un sous sous rep genre rubrique/commun/system ==> system ne fait pas parti des variables? donc ce qu'il y a dedans sera ignoré?
 
 
ou j'ai peut etre rien compris ...

Reply

Marsh Posté le 29-12-2011 à 17:12:13    

Le chemin rep est utilisé à la ligne

racine = "http://"&url_server&"/"&rep& "/"


Le chemin sous_rep n'est pas dans le bout de code qui est montré, mais est peut-être utilisé ailleurs.
 

if x=top-1 and raw(x)<> "rubrique"  then

Cette ligne teste si on se trouve sur le denier morceau (ou l'avant-dernier, si je me trompe) du chemin, et si ce morceau est différent de "rubrique".
 

Citation :

si je creé un sous sous rep genre rubrique/commun/system

Là, ce n'est pas bon, car "rubrique" doit se trouver à la fin (ou l'avant-dernière place si je me trompe), pas au début. Edit : Quoique, c'est peut-être correct, car en fait, le progrmme se base sur PATH_INFO, et je ne sais pas si votre création va altérer PATH_INFO.


Message édité par olivthill le 29-12-2011 à 17:14:38
Reply

Marsh Posté le 29-12-2011 à 17:35:17    

ok. pas evident.  
 
rubrique me sert de "racine"
si je met accueil.asp ET header.asp a cette racine: ma page s'affiche bien.
 
si par contre je laisse accueil.asp dans la racine et que je deplace header.asp dans Rubrique(racine)/commun/system  j'ai une erreur d'affichage de la page. (meme en modifiant la fonction include en indiquant bien le nouveau chemin de header.asp ==> il me dit qu'il le trouve pas alors qu'il y est)
 
si je me contente de placer header.asp dans Rubrique (racine)/commun la ca marche sans toucher quoique ce soit...
 

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed