PHP: fonction include et liens relatifs [Résolu/Fermé]

- - Dernière réponse :  Jaime - 14 mars 2017 à 16:29
Tout d'abord salut ! Bon sur mon site j'ai essayé le PHP car j'ai besoin de cette fameuse fonction "include". Comme ça je peux faire un menu commun à tout mon site.
J'ai donc un dossier: /home/acceuil.php avec ma page d'acceuil et j'inclus dedans des fichiers php
un dossier: /php/menu.php, header.php ect...
En local avec WAMP sa marche super parce-que dans la fonction include je rentre le lien absolu "c:/user.../menu.php". Le probleme c'est que évidemment sur internet sa marche pas, pour que sa marche faut que je change et mette le lien absolu sur le serveur "htt://www.monsite.com/php/menu.php", ce qui fait que je pourrais pu tester mon site en local (il appelera la page sur internet). Donc tout ça rend les choses compliqués, surtout que j'arrive pas à faire fonctionner include avec des liens relatifs. Je mettrais par exemple dans ma fonction include un truc du genre "/php/menu.php", un truc qui permettrait que sa marche ET en local ET sur internet... mais j'ai pas trouvé la méthode. Est-ce que c'est possible ?
Afficher la suite 

2 réponses

Meilleure réponse
Messages postés
2503
Date d'inscription
vendredi 29 octobre 2004
Statut
Contributeur
Dernière intervention
13 février 2018
551
29
Merci
Salut,

/ -> racine du domaine
./ -> racine du dossier courent
../ -> dossier parent

Le lien se fait par rapport au fichier courent, si index.php est à la racine du domaine, et que ton fichier à inclure est dans /php

Tu mes :

include('./php/menu.php');

Si tes fichiers sont dans :

www.mondomaine.net/site/index.php
www.mondomaine.net/php/menu.php

Ca va donner dans index.php :

include('../php/menu.php');


Si tes fichiers sont dans :


www.mondomaine.net/index.php
www.mondomaine.net/php/menu.php

Ca va donner dans index.php :

include('./php/menu.php');


Si tes fichiers sont dans :

www.mondomaine.net/index.php
www.mondomaine.net/menu.php

Ca va donner dans index.php :

include('./menu.php');

Note 1 : que la racine du domaine en local c'est http://localhost/
Note 2 : dans mes souvenir faire des includes en absolu (http://www.mondomaine.net/php/menu.php) est impossible pour des raisons de sécurité.

Dire « Merci » 29

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 62831 internautes nous ont dit merci ce mois-ci

Merci s.spark, ça m'a aidé en mars 2017...
0
Merci
Waaouh quel précision ^^. Bah il me reste plus qu'à tester tout ça quand j'aurais le temps, en tout cas merci je note ça quelque part pour pas le perdre.

Note 2 : bah apparament chez FREE niveau sécurité ils sont autant à la ramasse qu'à la société générale puisque j'ai testé et ça marche... mais bon comme je fais include sur un fichier qui est dans le meme répertoire (de mon dossier "machin" à mon dossier "bidule") ça pose peut-etre pas de problème. Tu penses au fait d'inclure un fichier qui se trouverait sur un autre site ?
s.spark
Messages postés
2503
Date d'inscription
vendredi 29 octobre 2004
Statut
Contributeur
Dernière intervention
13 février 2018
551 -
Oui, mais ça dépend de la configuration du serveur.