fonction include ?

lebarbo
Invité n'ayant pas de compte PHPfrance

26 janv. 2006, 20:34

Bonjour à vous tous,

J'ai des soucis avec la fonction include, je vais essayer d'être clair :
J'ai page1, page2, page3, page4
page1 = page de données qui varie pour chaque page
page2 = graphisme pour page1 et valable pour x autres pages
page3 = banniere pour tout le site
page4 = j'inclus dans un tableau page3 en haut, page2 et à l'intérieur d'une cellule dans la cellule de page2 la page1

Mais le dernier point ne marche pas et je ne sais pas si c'est possible.
En fait ça apparait comme ça :
bannière en haut, graphisme au centre et les données en bas.

Voilà mon code :
<body>
<table width="75" border="0" align="center">
  <tr> 
    <td>
      <?PHP
include ($_SERVER['DOCUMENT_ROOT'].'/banniere.php');
?>
    </td>
  </tr>
  <tr>

    <td height="64"> 
     
        <?PHP
include ($_SERVER['DOCUMENT_ROOT'].'/formation.php');
?>

      <table width="75" border="0">
        <tr> 
          <td> 
            <?PHP
include ($_SERVER['DOCUMENT_ROOT'].'/programmedonnees.php');
?>
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
</table>
</body>
Merci d'avance pour vos réponses

Mammouth du PHP | 19672 Messages

26 janv. 2006, 21:20

Fais afficher tes variables pour vérifier que les fichiers appels ont le bon chemin d'accès. Mets tes chemins dans des variables en faisant par exemple:
$chemin1 = $_SERVER['DOCUMENT_ROOT'].'/banniere.php';
echo("<p>". $chemin1 ."</p>\n");
Vérifie à partir de là si tu n'aurais pas un problème de chemin d'accès.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

lebarbo
Invité n'ayant pas de compte PHPfrance

26 janv. 2006, 22:28

Désolé mais je suis très débutant en PHP est ce que tu peux me mettre un exemple complet pour que je voie comment ça fonctionne
Merci

Mammouth du PHP | 19672 Messages

26 janv. 2006, 22:47

Je t'ai pourtant mis un exemple de code: il suffit simplement de le coller dans ta page et de faire ensuite afficher ta page dans le navigateur pour voir ce que ça affiche: si le chemin affiché correspond au chemin vers le fichier recherché, le problème est ailleurs, mais sinon, c'est que l'erreur viens de la manière dont tu pointes vers les fichiers à inclure.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

lebarbo
Invité n'ayant pas de compte PHPfrance

26 janv. 2006, 23:04

Je sais pas trop si on se comprend (dsl) donc je crois que le mieux s'est d'illustrer
http://marchesfi.free.fr/formation2.php

Voilà, donc en fait les données se trouve en dessous et j'aimerai les intégrer mais je ne sais pas si c'est possible en faisant comme j'ai fait :
page1 = page de données qui varie pour chaque page
page2 = graphisme pour page1 et valable pour x autres pages
page3 = banniere pour tout le site
page4 = j'inclus dans un tableau page3 en haut, page2 et à l'intérieur d'une cellule dans la cellule de page2 la page1
Merci

Mammouth du PHP | 19672 Messages

26 janv. 2006, 23:17

Ok, en voyant un peu le code source, je ne m'étoone plus trop : est-ce qu'il t'est venu à l'idée de regarder le code html généré ? Tu as plusieurs pages html comlètes imbriquées les unes dans les autres : c'est complètement invalide et pas du tout conforme.

Quelque chose me dit que tu n'as pas saisi le principe des includes.

Une page HTML complète a pour base ceci:

Code : Tout sélectionner

<html> <head> <title>Titre de la page</title> </head> <body> Contenu de la page </body> </html>
Partant de là, on peut découper en différents éléments et en faire des fichiers php dont on va se servir pour reconstruire la page complète. Mais en aucun cas certains éléments ne devront être inclus plusieurs fois.

J'aurai donc par exemple un fichier entete.php qui contiendra ceci:

Code : Tout sélectionner

<html> <head> <title>Titre de la page</title> </head> <body>
Ensuite je pourrais avoir basdepage.php qui contiendra :

Code : Tout sélectionner

</body> </html>
Il manque quoi ? le contenu de la page: là, je pourrais avoir différents éléments selon la page que je veux afficher. J'aurai donc par exemple accueil.php qui ressemblera à ceci:
<?php
include_once("./entete.php");
?>
  Contenu de la page
<?php
include_once("./basdepage.php");
?>
Le contenu variera en fonction du fichier appelé, mais les éléments génériques comme l'en-tête ou le pied de page seront inclus pour chaque page.

Est-ce que tu saisis le principe général ?
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

lebarbo
Invité n'ayant pas de compte PHPfrance

26 janv. 2006, 23:47

Ok, si tu me dis de faire comme ça alors c'est tout bon je vais faire comme ça. Forcément là je n'ai plus de problème.

Merci

lebarbo
Invité n'ayant pas de compte PHPfrance

26 janv. 2006, 23:51

ce qui est dommage quand même c'est que si je change la charte graphique je suis obligé de réadapter mon tableau qui se trouve au milieu de la page pour toutes les pages alors que si j'avais une page avec tout et juste un include pour le corp du texte brut ça aurait été plus simple...

lebarbo
Invité n'ayant pas de compte PHPfrance

27 janv. 2006, 09:03

Donc le truc ici pour être plus clair c'est pour le contenu de la page,

Code : Tout sélectionner

<?php include_once("./entete.php"); ?> Contenu de la page [b]ici il y a également des choses en commun avec es autres pages : le tableau, le fonds... Il y a juste les données brut en texte qui changent donc c'est un peu dommage de les dupliquer pour toutes les pages surtout si je change le fonds et le tableau.[/b] <?php include_once("./basdepage.php"); ?>
Sinon j'ai fait comme tu m'as dit mais en affichant accueil.php je n'ai pas de titre alors que j'ai bien nommé (donné un titre) la page entete.php

Byzarre ?? :(

lebarbo
Invité n'ayant pas de compte PHPfrance

05 févr. 2006, 16:24

y a quelqu'un pour résoudre ce problème ?

merci

Avatar du membre
ViPHP
ViPHP | 3008 Messages

05 févr. 2006, 17:32

Montres nous les code de entete.php et de basdepage.php.

lebarbo
Invité n'ayant pas de compte PHPfrance

07 févr. 2006, 17:57

Volà l'entete :

Code : Tout sélectionner

<html> <head> <title>Master Marchés Financiers</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body topmargin="0"> <table width="751" border="0" align="center" cellpadding="0" cellspacing="0"> <tr> <td width="751" height="82"><div align="center"><img src="banniere.jpg" width="751" height="82"></div></td> </tr> </table>
Et pour le bas de page ça va être du même type à peu près

Merci d'avance pour les renseignements

Avatar du membre
ViPHP
ViPHP | 3008 Messages

07 févr. 2006, 18:01

Quel est l'arborescence de tes fichiers ?

Les fichiers inclus et ton fichier appelant sont-ils au même niveau ?

lebarbo
Invité n'ayant pas de compte PHPfrance

07 févr. 2006, 18:04

Juste pour repréciser le problème n'est ni l'entete ni le bas de page mais bien le contenu. En effet j'ai une charte graphique identique pour de nombreuses pages mais pas pour toutes. Je m'explique :
entete et bas de page pareil pour TOUTES les pages du site
Fonds du contenu ainsi que les cellules, en gros la charte graphique au centre est valable pour quelques pages et à l'intérieur de celle-ci je veux appeler du texte brut :

voir exemple :
http://marchesfi.free.fr/formation.php

c'est à l'intérieur du carré que je veux appeler du texte via le php

Merci

lebarbo
Invité n'ayant pas de compte PHPfrance

07 févr. 2006, 18:06

au niveau du site tout sera au même niveau pour facilité les liaisons

PS: quelle rapidité lol