5568 sujets

Sémantique web et HTML

Bonjour,

Je suis entrain de créer un site web, j'ai mis mes pages en php il y a peu pour me faciliter la tâche en utilisant la fonction include. Comme ça je peux par exemple intégrer mon menu sur toute les pages et le modifier grâce à un seul fichier menu.php.

J'utilise Easy php pour visualiser et la fonction include marche parfaitement.
Je l'insère ainsi : <?php include("/menu.php"); ?>

Cependant, quand je le met sur le serveur ftp (page perso sfr), la fonction include ne fonctionne plus. j'y connais pas grand chose y'a peut être un problème de compatibilité je sais pas en tout cas j'espère que vous pourrez m'éclairer.

Merci d'avance et bonne soirée à tous Smiley smile
Modifié par Plouf30 (05 Feb 2013 - 22:26)
Si le menu.php est dans le même répertoire essaye plutôt avec
<?php include("menu.php"); ?>

ou
<?php include("./menu.php"); ?>

Je suppose que sur ta page SFR le / (chemin absolu) ne doit pas commencer à la racine de ton site mais plus haut dans l'arborescence.

Pour utiliser le chemins absolus passe plutôt par __DIR__ ou dirname(__FILE__) comme expliqué ici : http://www.phpfacile.com/creer_un_site_web_en_php/include_3.php5 (les explications sont pas très claires, mais l'essentiel y est ^^)

Bon courage !
Modifié par BlueScreenJunky (02 Feb 2013 - 10:18)
Super merci en effet c'était ça !

C'était le slash. J'ai regardé le lien et c'est vrai que c'est pas très clair sur la fin.

En fait mon problème n'est que partiellement réglé.
Mes autres pages ne sont pas à la racine mais situées dans un dossier "pages". Pour qu'ils aillent chercher le menu.php il faut qu'ils remontent dans les dossiers.

Le mieux serait que j'utilise un chemin absolu et c'est là que je comprend pas pourquoi je peux pas mettre <?php include("/menu.php"); ?> vu que le fichier est placé à la racine, ça marche bien de pointer vers la racine en utilisant cette technique en html..
En plus ça fonctionne en local avec Easy php alors je comprend pas.

Et je voudrais pas utiliser adressedemonsite/menu.php parce que je vais changer de nom de domaine donc il faudra que je modifie tout après.

Il n'y a pas un code à utiliser dans la fonction include pour pointer à la racine simplement ?

Mercii !
Le problème c'est que la "racine" dépend de ton serveur. Ce n'est pas forcément (et même rarement) l'endroit ou tu as mis ta page index.php. Du coup ce n'est pas la même sur EasyPHP et sur SFR.

Pour tes fichiers dans le dossier pages, le plus simple serait peut-être d'utiliser un chemin relatif et de remonter dans l'arborescence avec ".." :
include "../menu.php"

Modifié par BlueScreenJunky (03 Feb 2013 - 21:53)