Frame contre include()

canard -  
 canard -
Bonjour,

Je viens ici parce que j'ai un soucie qui, je suis sur, n'en est même pas un.

je m'explique,

j'ai fait il y a un certain temps un site web avec des frames. et les frames c'est moche. Donc mon site se présentent sous forme d'un tableau contenant mon entête et un menu horizontal. sous ce tableau y a ma frame avec un contenu variable (toujours sous forme de tableau). c'est on ne peut plus simple comme architecture.

Donc moi ce que je veux faire c'est virer ma frame et mettre a la place un système d'include en php pour pouvoir optimiser mes opérations de maintenance. Si j'ai bien compris, je dois donc inclure au dessus de mes contenus (qui sont des frames actuellement) une ligne de code du genre ?php include('monmenu.inc.php'); ?>.

Moi j'ai fait une page "globale.php" dans lequel j'ai mis un tableau à 2 lignes. sur la ligne du haut j'ai inclus mon menu et sur la ligne du bas mon contenu.

Mais ça marche pas. dès que j'inclus le menu dans le tableau de la page "globale", ce dernier disparaît au profits du menu, et je ne peux rajouter rien d'autre. Je comprend vraiment rien a rien a tout ça donc si vous arrivez a comprendre et m'expliquer mon probleme, parler un langage de débutant profond.

Voila merci bcp
A voir également:

10 réponses

arthezius Messages postés 3538 Date d'inscription   Statut Membre Dernière intervention   475
 
Bonjour,
Première chose que tu pourrai faire c'est nous mettre ton code des différentes pages que tu assembles via include.

Ensuite plutôt qu'une mise en page en tableau que tu sembles mentionner, renseigne toi sur CSS pour faire une mise en page avec des div.
Tu peux regarder ce lien pour t'aider: http://doc.arthezius.fr

Pour finir, quitte à utiliser des includes, autant optimiser la navigation. Fait une page type: entete+menu+pied de page pour avoir seulement un contenu variable dans cette même page. Autrement dit des pseudo-frame en php.
Voir ce lien: http://phpdebutant.org/article68.php
0
immogeek Messages postés 14 Date d'inscription   Statut Membre Dernière intervention  
 
devellope les parties de ton site de façons indépendantes et rassemblent les dans ton index.php, c'est une manière simple et propre.

je fais un exemple rapide avec des tables sans css :

hautdepage.htm :

<table width="750px height="150px">
<tr><td>bannière</td></tr>
</table>

basdepage.htm :

<table width="750px" height="150px"><
<tr><td>footer</td></tr>
</table>

Maintenant dans ton index.php :

<?php include('hautdepage.php');?>
<table width="750px">
<tr><td>Le Contenu de ton site</td></tr>
</table>
<?php include('basdepage.php');?>

ça reste un exemple simple pour comprendre le principe, en éspérant que ça t'aideras ;)
0
canard
 
voila c'est ça que je voulais faire en fait, sauf que ton exemple, bien j'y comprend pas grand chose en fait. enfin sur le fond je le comprend sans probleme, mais j'ai essayé de l'appliquer et finalement ça revient du chinois quand je me retrouve devant mon soft. Est ce que ce serait possible de me faire le même exemple mais en heu... mettant le code des 3 fichier en entier. Là je suis sur d'arriver à le refaire du coup. Mais je sais que j'en demande bcp là, donc si tu le fais pas je comprendrai.

sinon merci de vos réponses.
0
immogeek Messages postés 14 Date d'inscription   Statut Membre Dernière intervention  
 
envoie plutot ton code et je vais voir ce que je peux faire ;)
0
arthezius Messages postés 3538 Date d'inscription   Statut Membre Dernière intervention   475
 
Cette méthode est des plus basiques mais ça te force à refaire à chaque page la structure de la page.
Ma méthode (voir plus haut) reprends le principe même des frames de manière optimisé.

Si tu veux d'avantage d'explications, hésite pas à me demander.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Cricri
 
La fonction include() de php est très souple et peut être très puissante si on l'utilise en combinaison avec d'autres fonctions php.

Grosso modo, une page type utilisant les includes est un assemblage de 3 pages (comme pour les frames html):
-haut_de_page.htm
-menu.htm
-contenu.htm

*Nota: on est pas obligé d'inclure des fichiers html, on peut inclure ce qu'on veut en fait.



Ensuite, dans la page principale (ici index.php) on réuni les 3 autres pages (exactement comme pour les frames html):
--------------------------------
<?php

include('haut_de_page.htm');
include('menu.htm');
include('contenu.htm');

?>
--------------------------------

Pour agencer/positionner le tout sur la page, on peut utiliser du html (tableau, paragraphe, etc.) ou du CSS (via les balises <div>).
Le plus simple est encore d'utiliser du CSS et de mettre les balises <div> qui appelleront les classes directement dans les 3 pages. De cette façon, la page "index.php" ne contiendra pas plus de code que l'exemple que j'ai mis plus haut.

Si on utilise du html, alors il faut modifier un peu le code:

Avec un tableau:
--------------------------------
<html>
  <head>
   <title>Ma Page!</title>
  </head>

  <body>
<table>
  <tr>
     <td colspan="2">
<?php
              include('haut_de_page.htm');
?>
     </td>
  </tr>
  <tr>
    <td>
<?php
             include('menu.htm');
?>
      </td>
      <td>
<?php
             include('contenu.htm');
?>
    </td>
  </tr>
</table>

  </body>
</html>





Comme je l'ai dit au début, cependant, la fonction include() peut être très puissante et est très souple.
Sur le site http://www.phpdebutant.org on retrouve un système de template via les includes (dans le tutoriel sur les includes) qui montre comment utiliser un structure unique d'affichage et y inclure un contenu différent en fonction d'un lien index.php?page=page_a_afficher



L'idéal reste encore, cependant, de suivre un tutoriel sur le php, pour ça je recommandes 2 sites:

-https://openclassrooms.com/fr/
===> SiteduZér0.com: comme le nom l'indique, s'adressent aux zér0s quoique même les initiés vont y trouver des infos utiles. Méthode d'apprentissage très rapide.


-http://www.phpdebutant.org
===> PHP débutants: tutoriels davantage axés sur la pratique et qui s'adressent à ceux qui ont une petite base en programmation web (html/css, connaissance de base en php)
0
canard
 
ok merci pour toutes vos réponses.

En fait je crois que depuis le début j'ai bon au niveau du code et je pense que mon problème vient plus de mon simulateur de serveur (MAMP). Puisque même avec le code d'arthezius je me retrouve avec dreamweaver qui me dit, lorsque je clique sur live data, "une erreur c'est produite lors de la demande du document auprès du serveur d'évaluation", suivie d'un chiffre : 4.
puis quand j'essaie d'ouvrir ma page avec safari (en veillant bien à ce que MAMP fonctionne), mais en lieu et place de mon contenu je me retrouve encore avec du charabia : "4
0
arthezius Messages postés 3538 Date d'inscription   Statut Membre Dernière intervention   475
 
Sur le site http://www.phpdebutant.org on retrouve un système de template via les includes (dans le tutoriel sur les includes) qui montre comment utiliser un structure unique d'affichage et y inclure un contenu différent en fonction d'un lien index.php?page=page_a_afficher 

Cricri, l'exemple que tu cite sur phpdebutant.org est très précisement celui dont j'ai parlé plus haut.

J'avais rajouter un ça un tutoriel de mon site pour réaliser une mise en page en XHTML et avec CSS qui soit conforme au W3C et sans problème de compatibilité entre navigateur.
Réaliser une mise en page avec des tableaux ne peux qu'allourdir concidérablement le code. Il n'y a qu'a voir le lien que j'avais mis pour s'en rendre compte.

Sinon en ce qui concerne Mamp, ça doit être comme pour easyphp et wamp. Il faut normalement mettre tes pages dans un dossier www dans les dossiers du logiciel et mettre un page index.html ou index.php. Ainsi en mettant localhost/ comme url tu arrivera directement dessus.
0
canard
 
oui c'est déja fait, j'ai tout configuré.

mais quand même, j'ai toujours ces messages d'erreur
0
arthezius Messages postés 3538 Date d'inscription   Statut Membre Dernière intervention   475
 
As tu liens pour que je puisses voir précisement ?
0
canard
 
Non mais là j'ai mis mon site de coté et j'essaie déjà de faire marcher des fichiers bête et méchant en suivant les tutos que je trouve un peu partout, mais rien n'y fais. enfin bref je travaille en local là.
0
canard
 
en gros pour mes essaies j'ai un fichier index.php :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<head>
<title>Ma Page!</title>
</head>

<body>
<table>
<tr>
<td colspan="2">
<?php
include('menu.html');
?>
</td>
</tr>
</table>
</body>
</html>


puis le fichier menu.html:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Document sans nom</title>
</head>

<body>
<table height="114" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td width="10" height="114" bgcolor="#9E9D9D"> </td>
<td width="146" height="114"><img src="Image/menu/logo.gif" alt="g" width="146" height="114" /></td>
<td width="177" height="114"><img src="Image/menu/gauchelogo.gif" alt="g" width="177" height="114" /></td>
<td width="127" height="114"><img src="Image/menu/gite1.gif" alt="g" width="127" height="114" /></td>
<td width="165" height="114"><img src="Image/menu/gite2.gif" alt="g" width="165" height="114" /></td>
<td width="215" height="114"><img src="Image/menu/gite3.gif" alt="g" width="215" height="114" /></td>
<td width="10" bgcolor="#9E9D9D"> </td>
</tr>
</table>
<table width="850" border="0" align="center" cellpadding="0" cellspacing="0">
<tr></tr>
</table>
<table height="30" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td width="10" height="30" bgcolor="#9E9D9D"> </td>
<td><img src="Image/menu/accueil.gif" alt="g" width="69" height="30" /></td>
<td><img src="Image/menu/legite.gif" alt="g" width="77" height="30" /></td>
<td><img src="Image/menu/chambrehote.gif" alt="g" width="177" height="30" /></td>
<td><img src="Image/menu/notreregion.gif" alt="g" width="127" height="30" /></td>
<td><img src="Image/menu/loisiractivite.gif" alt="g" width="165" height="30" /></td>
<td><img src="Image/menu/tarifs.gif" alt="g" width="66" height="30" /></td>
<td><img src="Image/menu/acces.gif" alt="g" width="67" height="30" /></td>
<td><img src="Image/menu/contacts.gif" alt="gg" width="82" height="30" /></td>
<td width="10" bgcolor="#9E9D9D"> </td>
</tr>
</table>
<p> </p>
</body>
</html>


et apparemment ça marche pas.
0