8797 sujets

Développement web côté serveur, CMS

Bonjour,
J'ai un lien au 2eme niveau mais il peut être appelé par le 1er niveau, le second ou le troisième. Donc les liens, deux fois sur trois, ne fonctionnent plus.
ex : './images/logo.jpg' différent de '../images...' ou 'images /...'
Je voudrais donc transformer tous mes lens en les situant depuis la racine. Pour ça il y a $_SERVER['DOCUMENT_ROOT'].
J'ai écrit :

if (isset($_SERVER['DOCUMENT_ROOT']))  { 
          $chemin1 = $_SERVER['DOCUMENT_ROOT']; }
	
$chemin2 = '/whombat/';
$chemin = $chemin1.$chemin2;
	
if (!isset($_SESSION["chemin"])) {  $_SESSION["chemin"] = $chemin; }

et j'obtiens, en contrôlant avec un echo le chemin voulu pour me servir de racine : easyphp1-8/www/whombat/membres/index.php mais le lien (A HREF...) ne le prend pas. Ca ne fonctionne pas, avec ou sans guillemets ou apostrophes.
Quelqu'un aurait une idée ?
d'avance, merci de votre aide.
Ha, toutes les solutions (que je ne connais pas parce que je suis néophyte) sont les bien venues.

J'ai cherché sur la doc php une fonction du genre curroot() ou root() mais je n'ai pas trouvé. Il faut passer par $_SERVER et je crois que c'est ça qui coince.

Trouver, quelque soit le niveau de profondeur, la racine et le nombre de noeuds...
Bonjour,

On peut commencer par lire la FAQ: Quelle est la différence entre les chemins relatifs et absolus ?

Et, sans passer par PHP, faire de simples liens abolus depuis la racine répertoire de base (celui sur lequel pointe le nom de domaine ou le sous-domaine).

Si l'image "logo.jpg" est accessible via http://www.example.com/images/logo.jpg , tant qu'on est sur le domaine www.example.com on pourra utiliser le chemin suivant:
"/images/logo.jpg"

Par exemple, je veux inclure l'image suivante: Smiley murf . Je suis sur forum.alsacreations.com, donc il me suffit de faire ceci:
<img src="/smilies/murf.gif" alt="murf" />

Dans la barre d'état, le navigateur m'affiche l'URL suivante:
http://forum.alsacreations.com/smilies/murf.gif

Magique. Smiley smile
Je ne comprends pas.
Supposons 3 répertoires en cascades et trois fichiers :
______________
| |
| www (racine) |
|____________ |
||
|REP1| => |IMAGES| -> fich1.gif
||
|REP2| => |EXCEL| -> Fich2.cvs \ fich4.php
|| \
|| fich3.php
||
|REP3|=========|REP4|----fich5.php
\
fich6.php

Il y a donc 4 fichiers php, les 3, 4, 5 et 6.
Il y a 1 fichier gif, le 1 et 1 fichier cvs, le 2, le tout dans 6 répertoires dont 1 d'images et 1 d'excel.

Si le 1er fichier fich3.php veut l'image, le chemin sera '../images/fich1.gif et ça on peut le prévoir dans le lien <a href.

Pareil pour le 3 ème fichier fich5.php veut l'image, le chemin sera ..../images/fich1.gif

Mon problème c'est que j'ai un document en 5 morceaux : la tête, la bande à gauche avec tous les liens, la bande à droite et le pied. Au centre de ces 4 éléments arrive le 5àme qui change à chaque page : fiche membre, forum, accueil etc...

La bande de gauche est la même pour toutes les pages, c'est le but du jeu. Donc les liens ne fonctionnent pas en chemin relatifs. Il faut les déclarer avec des chemins absolus.

Oui, mais voilà. Je pense que mon code est bon, celui du premier message, mais cela ne fonctionne pas.
En fait je crois que j'ai une idée. C'est session_save_path qui me l'a donnée.
Sur la toute prelière page on fait :

session_start();
$_SESSION['root'] = "www/whombat/";
$racine = $_SESSION['root'];
$_SESSION['images'] = "www/whombat/images/";
$chem_img = $_SESSION['images'];
$_SESSION['membres'] = "www/whombat/membres/";
$membres = $_SESSION['membres'];
etc...


et dans les liens, on a plus qu'à...

<A HREF = $membres.'inscription.php'>Inscription</A><BR>
<A HREF = $membres.'forum.php'>Forum</A><BR>
<A HREF = $membres.'livre_dor.php'>Livre d'Or</A><BR>
.....


Je n'ai pas essayé mais cela devrait fonctionner, non?
Ca y est, j'ai compris. C'est exactement ce que je cherchais.
J'avais tellement lu de la doc sur les chemins relatifs et/ou absolus, doc à laquelle je n'avais rien compris d'ailleurs, que, échaudé, je ne m'étais pas laissé tenté par le lien de Florent V.

Grossière erreur. C'était rapide, clair et imparable. Ah, si toutes les docs étaient comme ça...

Alors merci, grand merci à Florent V.

Merci aussi à dew qui m'a sorti de ma phobie.

J'ai travaillé toute la nuit et la matinée sur mon développement, aussi, à 12h 30 quand Florent V. m'a suggéré le lien, j'étais trop crevé pour faire l'effort. Un bon repas, une bonne sieste et zou... Ca repart.

Merci à tous. C'est la réponse exacte à mon soucis. Peut pas mieux faire...