[RESOLU] Include comment ça marche?

Eléphant du PHP | 55 Messages

13 nov. 2013, 12:39

Bonjour,

J'aimerais savoir comment faire pour indiquer le chemin.
J'ai ma page index.php dans laquelle je place un include_once qui contient le footer (à ajouter à toutes mes pages).
Dans ce footer, j'ai un lien pour la Newsletter.
Quand je pars d'une page du dossier pages, elle ne pointe pas sur Newsletter car le chemin va être différent de celui indiqué dans la page footer. Qui est à la racine.

Arborescence
Dossier pages > Newsletter
index.php
footer.php

Question: comment faire pour que je puisse accéder à la page Newsletter de n'importe quelle page en utilisant un include?
Cordialement
Ionesco

Eléphant du PHP | 77 Messages

13 nov. 2013, 13:18

Deux solutions:
1. La mauvaise: tu indiques un chemin absolu pour arriver à ton fichier (du type http://www.monsite.com/Dossier..../newsletter.php)
2. La bonne: tu fais en chemin relatif du type <?php include_once('./Dossiers..../newsletter.php) ?>

./ indique la racine

Et ../ indique lui le répertoire parent.

Tu peux utiliser l'un ou l'autre mais dans ton cs peut être plus le premier
Développeur PHP/Javascript/HTML

Mes sites perso :
construire une piscine => http://www.construire-sa-piscine.com
Le cadre végétal => http://www.cadre-vegetal.org

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

13 nov. 2013, 14:45

salut,


si tu parle d'un lien html, utilise un chemin absolu dans ton lien /pages/newsletter.php

si tu parle d'un include php le problème ne devrait pas se poser quand tu change de page vue que tu semble utiliser un "template" (si tu est dans un sous dossier les appel aux fichiers ne sont pas les mêmes et du coup tu aurais corrigé toi même ?).


@+
Il en faut peu pour être heureux ......

Eléphant du PHP | 55 Messages

13 nov. 2013, 14:53

Bonjour,
Merci pour la réponse. J'ai essayé mais ça ne marche pas.
En fait mon arborescence se présente ainsi
  • 1) index.php et footer.php au même niveau
  • 2) dossier Pages qui inclut
  1. a) Newsletter.php

  • b) Dossier Jeux > qui comprend la page jeux.php
[/color]
Dans la page jeux.php j'ai inclus le pied de page footer.php grâce au include_once('./../../footer.php')

Mon footer contient des href qui sont écrits en fonction de leur place dans l'arborescence.
pour la Newsletter <a href="./dossier pages/Newsletter.php">NL</a>
Le problème est que lorsque je clique sur le lien Newsletter situé sur ma page jeux.php, il ne trouve pas Newsletter.php
(le chemin n'étant pas le bon) puisqu'ils sont dans le même dossier.
Comment faire pour que le chemin soit correct depuis n'importe quelle page en utilisant le include.
Je ne peux utiliser le http car je suis en local et n'est pas d'adresse de site.
Cordialement
Ionesco

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

13 nov. 2013, 18:52

il s'agit d'un lien html donc aucun rapport avec php il faut que tu réfléchisse en context web.

donc il te faut un base que tu obtiens avec la balise base (par exemple <base href="http://localhost/tonsite" />

ensuite le lien est simple /pages/newsletter.php


@+
Il en faut peu pour être heureux ......

Eléphant du PHP | 55 Messages

13 nov. 2013, 19:09

Bonsoir,
Super.
Merci pour cette réponse.
Ionesco