WampServer

Apache, PHP, MySQL on Windows 

 
  • Accueil forum
  • Retour à WampServer
  • presentation
  • Download
  • Addons
  • Formations
  • Alter Way

 
Voir le sujet: Précédent•Suivant
Aller à : Liste des Forums•Liste des messages•Nouvelle discussion•Recherche•Connexion•Imprimer la vue
Liens absolus et projets Wamp
Envoyé par: GiPou31 (---.d4.club-internet.fr)
Date: 17 February 2007 à 19:03

Bonjour,

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.

Merci pour votre aide



GiPou31

Options: Répondre•Citer ce Message
Re: Liens absolus et projets Wamp
Envoyé par: Otomatic (---.fbx.proxad.net)
Date: 19 February 2007 à 12:38

Bonjour,

Pourquoi vouloir, à tout prix, mettre des liens absolus ?

Aucun de mes trois sites, développés en local sous Wamp5 et transférés chez deux hébergeurs différents, ne contient de liens absolus.

Dans les très rares cas où il est impossible de faire autrement - ce qui ne m'est pas arrivé - on peut utiliser la variable $_SERVER['DOCUMENT_ROOT']

Options: Répondre•Citer ce Message
Re: Liens absolus et projets Wamp
Envoyé par: GiPou31 (---.d4.club-internet.fr)
Date: 19 February 2007 à 18:42

Bonjour,

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)



GiPou31

Options: Répondre•Citer ce Message
Re: Liens absolus et projets Wamp
Envoyé par: Otomatic (---.fbx.proxad.net)
Date: 19 February 2007 à 19:30

GiPou31 a écrit:

> 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



---------------------------------------------------------------
Documentation Apache - Documentation PHP - Documentation MySQL - Wampserver install files & addons

Options: Répondre•Citer ce Message
Re: Liens absolus et projets Wamp
Envoyé par: GiPou31 (194.199.172.---)
Date: 23 February 2007 à 16:00

Bonjour,

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 :

1) Modification du fichier hosts (sous c:\windows\system32\drivers\etc)
127.0.0.1 localhost
127.0.0.1 monsite1
127.0.0.1 monsite2

2) Modification du fichier httpd.conf
# Virtual hosts
#Include conf/extra/httpd-vhosts.conf

NameVirtualHost *:80

<VirtualHost *:80>
DocumentRoot d:/www/
ServerName localhost
</VirtualHost>

<VirtualHost *:80>
DocumentRoot d:/www/monsite1/
ServerName monsite1
</VirtualHost>

<VirtualHost *:80>
DocumentRoot d:/www/monsite2/
ServerName monsite2
</VirtualHost>

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



GiPou31

Options: Répondre•Citer ce Message
Re: Liens absolus et projets Wamp
Envoyé par: Otomatic (---.fbx.proxad.net)
Date: 23 February 2007 à 17:19

Bonjour,

Ça me paraît correct.

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;
}

Ensuite, on peut faire

$dossier=on_est_ou();

puis les includes par rapport à la racine du site

include($dossier.'inc/entete.php');
include($dossier.'fonctions/affiche_img.php');
....

On peut aussi utiliser une boucle for à la place de la boucle while

for($i=1,$relpath='./';$i<=5 && !file_exists($relpath.'ici_racine.php');$i++,$relpath.='../')



Message édité (23-02-2007 18:09)

---------------------------------------------------------------
Documentation Apache - Documentation PHP - Documentation MySQL - Wampserver install files & addons

Options: Répondre•Citer ce Message
Re: Liens absolus et projets Wamp
Envoyé par: GiPou31 (---.d4.club-internet.fr)
Date: 23 February 2007 à 19:07

Bonjour,

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 ?



GiPou31

Options: Répondre•Citer ce Message
Re: Liens absolus et projets Wamp
Envoyé par: Otomatic (---.fbx.proxad.net)
Date: 23 February 2007 à 19:27

GiPou31 a écrit:

> 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.



---------------------------------------------------------------
Documentation Apache - Documentation PHP - Documentation MySQL - Wampserver install files & addons

Options: Répondre•Citer ce Message
Re: Liens absolus et projets Wamp
Envoyé par: GiPou31 (---.d4.club-internet.fr)
Date: 23 February 2007 à 20:09

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"winking smiley 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 ?

Merci à toi



GiPou31

Options: Répondre•Citer ce Message
Re: Liens absolus et projets Wamp
Envoyé par: Otomatic (---.fbx.proxad.net)
Date: 24 February 2007 à 12:27

Bonjour,

Créer, à la racine du site, un fichier, par exemple infos.php et qui contient dans le corps :

<?php
phpinfo();

$ref_docs = "[www.php.net];;
$tableau = get_defined_functions();
while (list($type,$list) = each($tableau)) {
if ($type == "internal" && is_array($list)) {
sort($list);
foreach ($list as $func) {
if ($func == "_"winking smiley $func2 = "gettext";
else $func2 = preg_replace("/_/", "-", $func);
echo "<a href=\"$ref_docs.$func2.php\">$func</a><br>\n";
}
}
}
?>

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.



---------------------------------------------------------------
Documentation Apache - Documentation PHP - Documentation MySQL - Wampserver install files & addons

Options: Répondre•Citer ce Message


Aller à : Liste des Forums•Liste des messages•Recherche•Connexion
Désolé, seuls les utilisateurs connectés peuvent envoyer des messages dans ce forum.
Cliquer ici pour se connecter

design by jidePowered by Alter Way get firefoxget PHP