PHP: fonction include et liens relatifs

Résolu/Fermé
sillage57 - 5 févr. 2008 à 16:33
 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 ?
A voir également:

2 réponses

s.spark Messages postés 2480 Date d'inscription vendredi 29 octobre 2004 Statut Contributeur Dernière intervention 13 février 2018 617
5 févr. 2008 à 17:25
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é.
29
Merci s.spark, ça m'a aidé en mars 2017...
0
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 ?
0
s.spark Messages postés 2480 Date d'inscription vendredi 29 octobre 2004 Statut Contributeur Dernière intervention 13 février 2018 617
5 févr. 2008 à 21:14
Oui, mais ça dépend de la configuration du serveur.
0