Bonjour,

J'ai suivi le tuto "Inclure un fichier dans un autre grâce à PHP" sur ce merveilleux site et j'ai effectivement réussi à faire ce que je voulais.

J'utilise la fonction include() pour avoir un header et un footer qui sont identiques sur toutes mes pages. Mais j'ai voulu aller plus loin et me retrouve face à un mur.

Dans la racine j'ai les fichiers index.php, header.inc.php et footer.inc.php et d'autres fichiers du genre page.php qui sont mes pages du site avec comme codage :

<?php include('header.inc.php'); ?>

<?php include('dossier/page.inc.php'); ?>		
					
<?php include('footer.inc.php'); ?>


Et tout fonctionne tant que page.php est dans la racine...mais si je veux le déplacer dans un dossier et bien ça commence à bugger.

J'ai compris qu'il s'agissait soit d'une erreur de code soit d'une erreur d’arborescence. Alors j'ai tout tenté...mais en vain.

J'ai essayé des....
<?php include($_SERVER['DOCUMENT_ROOT'].'/tools/page.inc.php'); ?>


J'ai relu des tutos sur les liens relatifs et absolus...

J'ai réorganisé ma racine et mes dossiers...

J'ai tenté tous les cas de figure mais rien ne va, je sais que j'y suis presque mais c'est frustrant.

Aussi je viens demander votre aide car je n'y arrive pas tout seul.

Par avance merci.
Salut,

Tu as essayé :

<?php include('/dossier/page.inc.php'); ?>

Regarde ou tu appels ta page.inc.php, dans ton site. Si c'est dans un dossier ou à la racine. Car à mon avis, ton problème vient de là.

Courage.
Hello Tintin75,

Merci pour ta réponse.

Oui j'ai essayé
<?php include('/dossier/page.inc.php'); ?>
et aussi
<?php include('/dossier1/dossier2/page.inc.php'); ?> 
le tout bien évidemment en réorganisant à chaque fois mes dossiers dans la racine.
Les résultat est que la page est bien appelée par le navigateur mais il s'affiche une page blanche.

Et si je déplace mes fichiers header.inc.php et footer.inc.php dans un dossier de la racine et que je code :

<?php include('/dossier1/header.inc.php'); ?>

<?php include('/dossier1/dossier2/page.inc.php'); ?>		
					
<?php include('/dossier1/footer.inc.php'); ?> 


J'obtiens aussi une page blanche....

Je ne vais rien lâcher et au pire je laisse tout dans la racine et tant pis pour mon organisation qui devait être plus facile avec cette méthode.

Je continue à chercher.
Modifié par Yannis (21 Feb 2018 - 10:46)
Modérateur
Salut,

Pour ma part j'ai déjà utilisé
<?php include('dossier/page.php'); ?> 

sans soucis...

upload/1519217585-42161-capture.png


N'est-ce pas le code dans ces fichiers qui n'aime pas être déplacé ? si tu remplace le contenu de ces fichier par un simple "coucou" plutôt que du code ça marche ?
Modifié par _laurent (21 Feb 2018 - 13:53)
Merci _laurent pour ce post détaillé, j'apprécie.

J'ai bel et bien mon index et quelques pages principales qui se trouvent dans la racine et celles-ci puisent dans un dossier et j'utilise
<?php include('dossier/page.php'); ?>
dans mon code pour faire "remonter" toutes mes "pages.php". Tout fonctionne parfaitement si la page appelée est dans la racine et que le contenu est dans un dossier au "niveau" inférieur. Tout comme dans ton screenshot.

Sauf que je tente à partir de ma page d'accueil de faire des liens vers un dossier "POSTS" contenant des "post1.php" et ces derniers puisent (pour certains) dans un sous-dossier "POSTS CONTENT" contenant des post "Content1.php"

Par contre toutes les pages du site ont les mêmes header.php et footer.php issus de la racine. Et l'idée et que ces fichiers restent dans la racine.

Donc avec l'arborescence suivante :

RACINE
./ [index.php + header.php + footer.php]
I
I
I------->POSTS [post1.php + post2.php + etc.php...]
. . . . . . . . . I
. . . . . . . . . I
. . . . . . . . . I------->POSTS CONTENT [postContent1.php...]

si j'appelle depuis mon index.html (qui est ma page d'accueil) un fichier depuis "POST" qui lui même peut, ou non, appeler un fichier dans "POSTS CONTENT", j'obtiens une page blanche sur le navigateur.

Mon objectif est de réduire le nombre de fichiers dans la racine au strict minimum (index + header + footer + 3 autres fichiers.php) et d'avoir tous mes posts, articles et autres pages dans des dossiers biens distincts et d'utiliser quelques sous-dossiers. J'ai tenté encore ces derniers jours mais faute de temps j'ai remis mes posts dans la racine et remonté les sous dossiers d'un niveau pour que le site soit opérationnel le temps que je trouve la solution à mon casse-tête.

Avec un screenshot c'est mieux que mon arborescence du Moyen-Âge...

upload/1519411732-69843-capturedaeacran2018-02-23aa19.png
Modifié par Yannis (23 Feb 2018 - 19:49)
Modérateur
Ha ! Merci pour les précisons mais je suis pas sur d'avoir bien compris...

T'as page de base c'est laquelle ? index.php ou post1.php ?

La j'ai pris l'exemple de index qui appelle post1 qui appelle postcontent1 et ca marche bein en local :
upload/1519418778-42161-capture.png

Et la j'ai testé depuis post1 appeler header au dessus et postcontent en dessous :
upload/1519419385-42161-capture2.png

Tout marche bien en local, apres je sais pas si y'a des soucis sur un serveur. Tu le testes ou toi ?
Meilleure solution
_laurent merci j'ai une piste...

Je pense que j'avais un problème de syntaxe. J'ai oublié les deux points dans mon code :

<?php include('../header.php'); ?>
donc pas d'appel de fichier au-dessus.

Coder c'est comme piloter un zinc tu apprends tout le temps de tes erreurs !

Je vais tester ce soir et je reviendrai peut-être pour marquer ce sujet comme résolu...
Génial mille mercis _laurent !!!

La solution était sous mes yeux mais je fixais sur mon problème et oubliais totalement mes basiques.

Je vais donc passer ma soirée corriger tous les endroits où il manque les
../dossier/fichier.php
et je vais pouvoir avancer et finir mon site.

Bon code à tous !