j'ai installé la dernière version de wamp5 depuis hier et depuis je suis confronté à un problème pour adapter mon site internet (qui est uniquement en développement) En effet, je débute en php, et je fais donc des tutos sur une base mysql de test. Et j'ai également mon site sur lequel je veux travailler et mettre en pratique ce que j'ai appris. J'ai installé wamp5 sur P:\wamp et créé le répertoire www sur d:. J'ai créé 2 répertoires sur d:\www : rollersisters et testphp Tout fonctionne parfaitement.
Par contre, sur mon site je souhaite travailler avec des liens absolus (mais sans mettre l'uri de base soit [www.rollersisters.com]). Si j'ai l'arbo suivante : css images includes Alors je voudrais indiquer comme lien : /css/mon_fichier.css /images/mon_fichier.jpg Or avec wamp et les projets créés, les liens ne marchent que si je mets : /rollersisters/css/mon_fichier.css Mais, si j'ai bien tout compris (je suis novice ne l'oubliez pas !), quand je vais passer en production chez un hébergeur, je vais être obligé de créer la même arborescence alors que le répertoire rollersisters n'a été créé que pour faire cohabiter plusieurs projets pour wamp. Je ne sais pas si je suis clair là !
Je cherche depuis 2 jours mais je suis perdu !!! Il doit bien y avoir un moyen de développer et tester le site en local, puis de le mettre en production sans retoucher le code pour modifier les liens.
j'ai besoin d'indiquer des liens absolus car mon arborescence possède plusieurs niveaux et je suis susceptible d'appeler des éléments (1 photo par exemple) depuis des pages de niveau différent. Voilà pourquoi je ne peux pas indiquer de chemins relatifs.
L'utilisation de chemins absolus (sans indiquer l'adresse complète, ce qui permet d'envisager un changement de nom de domaine sans devoir intervenir dans toutes les pages) me parait, à tort peut-être, plus souple.
Merci pour votre réponse, je vais regarder du côté des variables (pour l'instant, j'ai surtout étudié le html/css, n'ayant testé que la partie include en php !)
Sur le forum, j'ai vu que d'autres personnes avaient posé des questions proches des miennes (en décembre notamment), et je vais donc également étudier les éléments de réponses que j'ai pu voir (autour des virtualhost)
> j'ai besoin d'indiquer des liens absolus car mon arborescence > possède plusieurs niveaux et je suis susceptible d'appeler des > éléments (1 photo par exemple) depuis des pages de niveau > différent. Voilà pourquoi je ne peux pas indiquer de chemins > relatifs.
Mais si, mais si, on peut très bien indiquer des chemins relatifs, même depuis le troisième niveau ou plus d'arborescence d'un site.
"../images/larges/mon_image.jpg" on remonte d'un niveau "../../images/larges/mon_image.jpg" on remonte de deux niveaux "../../../images/larges/mon_image.jpg" on remonte de trois niveaux
j'utilise le chemin à partir de la racine du serveur pour ne pas avoir de problème avec la fonction include du php. En effet, j'ai cru comprendre que, lors de l'insertion du code html, les liens de la page insérée sont recalculés par rapport à la page dans laquelle l'insertion est réalisée.
Par exemple : - page appelante page1.php (située à la racine du site) - page à insérer page2.php (située dans /resultats) avec un lien vers la photo mon_image.jpg (située dans /resultats/photos/2007)
Si j'utilise les liens relatifs,dans page2.php, j'ai un href = photos/2007/mon_image.jpg Donc quand l'insertion sera effectuée dans page1.php, le lien va chercher le fichier mon_image.jpg dans le répertoire photos/2007 sous la racine et il ne la retrouvera pas
Avec l'adressage absolu depuis la racine, je vais avoir href = /resultats/photos/2007/mon_image.jpg et le lien sera donc correct que je fasse un include dans page1.php ou dans une autre page d'un autre niveau du site.
Mais bon, comme je débute, j'ai peut-être mal compris ce que j'ai lu. D'autre part, comme les liens que j'utilise marchent et que je les trouve plus facile à lire (les ../.., c'est pas toujours immédiat pour moi !), j'ai codé tout naturellement de cette façon.
L'inconvénient c'était avec wamp5 et le fait de vouloir plusieurs sites en parallèle, exécutables (pour test) depuis le menu de wamp ( via localhost)
Après plusieurs jours de recherche (je dois vraiment pas être doué !!!), j'ai réussi à tout faire fonctionner comme je le voulais :
3) Modification du fichier index.php (copié lors de l'installation de wamp5 sous d:\www) modifier la ligne : echo '<a class="ditem" href="'.$file.'"><img src="dossier.gif" alt="image dossier" /> '.$file.'</a>'; par echo '<a class="ditem" href="['.$file.'] src="dossier.gif" alt="image dossier" /> '.$file.'</a>';
Donc maintenant tout fonctionne comme je le voulais mais peut-être aurai-je des surprises lorsque je passerai en production ? (c'est mon premier site !!!)
Merci en tous cas pour tes réponses et n'hésite pas à critiquer mes choix si besoin car c'est comme ça qu'on apprend
Tient, une petite fonction qui retourne le bon nombre de "../" lorsqu'elle est exécutée, bien sûr, à condition d'avoir mis un fichier vide de nom "ici_racine.php' à la racine de son site.
// Retourne une chaîne comportant le nombre de fois nécessaire "../" // pour donner le niveau racine du site. // **** Donner la bonne valeur à $cpt en fonction des niveaux maximum du site function on_est_ou() { $cpt=0; $path = './'; while (($cpt<5) && !file_exists($path.'ici_racine.php')) { $path .= '../'; $cpt++; } if ($cpt==5) { echo "Localisation impossible\n"; return false; } return $path; }
ta fonction doit être super, mais si tu te donnes tant de mal (appel d'une fonction supplémentaire lors de chaque include), c'est qu'il doit y avoir vraiment un intérêt à tout coder en relatif.
Je m'interroge donc de plus en plus sur mon choix d'avoir écrit mes liens en absolu depuis la racine du site.
Il doit y avoir un truc qui m'échappe... mais quoi ?
> c'est qu'il doit y avoir vraiment un intérêt à tout coder en > relatif. > Je m'interroge donc de plus en plus sur mon choix d'avoir écrit > mes liens en absolu depuis la racine du site.
J'ai le même site chez deux hébergeurs différents et il m'arrive de déplacer des dossiers et tout leur contenu pour les monter ou descendre d'un niveau dans l'arborescence. Ceci explique pourquoi je me suis « penché » sur les problèmes de liens en relatif. D'autre part, lorque un hébergeur est « mutualisé », comme Free, il arrive que les sites soient « migrés », c'est-à-dire déplacés d'une machine à une autre, ce qui fait que les chemins absolus changent.
Je suis partisan du « moindre effort » et c'est pourquoi j'ai passé du temps sur cette question. Maintenant, je n'ai plus à calculer le chemin du fichier dans lequel je travaille, ni celui de mes includes.
Néanmoins, à partir du moment où ce que tu fais est correct, ne fait pas appel à des requêtes http du genre <img src="[mon_site]; ...> et que tu retrouves tes « billes », tout est pour le mieux.
ok, ça me rassure un peu. Mais bon, quand je vois toutes les questions que je me pose, je me dis qu'il est pas encore au bout mon site !!!
Heureusement qu'il y a de super tutoriels et des gens compétents et sympas sur le Web
Au fait, pour les liens j'utilise donc des chemins absolus à partir de la racine du serveur ; mais pour les include, j'ai mis mes fichiers dans un répertoire /includes et je les appelle uniquement par un require ("nom_fichier_a_inclure.php" en ayant positionné la variable include_path à "d:\www\monsite\includes". Est-ce la bonne méthode ? chez mon futur hébergeur, je pourrai pareillement définir la variable ? est-il possible de mettre aussi le chemin absolu dans l'appel de la fonction require et de ne pas utiliser la variable ?
Nons seulement ça donnera toutes les informations sur l'environnement php, dont l'include path, mais également toutes les fonctions php supportées par l'hébergeur (Wamp étant également considéré comme un hébergeur) avec, pour chaque focntion un lien sur sa description en français.