comprendre un bout de "code" - ASP - Programmation
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.
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 ...
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.
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...
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.
<%
'-------------- 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