> Tous les forums > Forum des Webmasters
 souci d'include() avec DreamweaverSujet résolu
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
philbouq
  Posté le 28/12/2009 @ 16:03 
Aller en bas de la page 
Petit astucien

Bonjour (ou Re !)

J'ai enfin compris l'utilisation de la fonction include().

j'ai réussi à créer mon fichier à inclure en .inc.php
J'ai même réussi à l'insérer dans une page de test, en php aussi.

Mais après avoir inclus la ligne <?php include('texteainclure.inc.php'); ?> entre <head> et </head>, l'include fonctione très bien mais je ne parviens plus à modifier le reste de ma page ! J'ai une fenêtre qu ime dit qu c'est bloqué.

et ça me gonfle depuis 3 heures !!!

Publicité
qmike
 Posté le 28/12/2009 à 17:57 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

bonjour

Pour pouvoir t'aider au mieux, il serait intéressant de voir un plus ton code

essai de coller un bonne partie de code utilisé

philbouq
 Posté le 28/12/2009 à 18:12 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Merci Qmike.

voici le type de fichier que je souhaite inscrire dans chaque page : (j'ai appelé cette page 'test3.inc.php')

<html>
<head>
<title>Document sans titre</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript">
<!--
function mmLoadMenus() {
if (window.mm_menu_1228152303_0) return;
window.mm_menu_1228152303_0 = new Menu("root",68,20,"Georgia, Times New Roman, Times, serif",14,"#0033CC","#0033CC","#FFFFFF","#CCCCCC","left","middle",3,0,1000,-5,7,true,false,true,0,true,true);
mm_menu_1228152303_0.addMenuItem("menu1","location='bibliographie.htm'");
mm_menu_1228152303_0.fontWeight="bold";
mm_menu_1228152303_0.hideOnMouseOut=true;
mm_menu_1228152303_0.bgColor='#555555';
mm_menu_1228152303_0.menuBorder=1;
mm_menu_1228152303_0.menuLiteBgColor='#FFFFFF';
mm_menu_1228152303_0.menuBorderBgColor='#777777';

window.mm_menu_1228152333_0 = new Menu("root",68,20,"Georgia, Times New Roman, Times, serif",14,"#0033CC","#0033CC","#FFFFFF","#CCCCCC","left","middle",3,0,1000,-5,7,true,false,true,0,true,true);
mm_menu_1228152333_0.addMenuItem("menu2","location='collections.htm'");
mm_menu_1228152333_0.fontWeight="bold";
mm_menu_1228152333_0.hideOnMouseOut=true;
mm_menu_1228152333_0.bgColor='#555555';
mm_menu_1228152333_0.menuBorder=1;
mm_menu_1228152333_0.menuLiteBgColor='#FFFFFF';
mm_menu_1228152333_0.menuBorderBgColor='#777777';

mm_menu_1228152333_0.writeMenus();
} // mmLoadMenus()
//-->
</script>
<script language="JavaScript" src="mm_menu.js"></script>
</head>

<body>
<script language="JavaScript1.2">mmLoadMenus();</script>
<p>&nbsp;</p>
<p align="center"><b>BONJOUR</b></p>
<table width="100%" border="0">
<tr>
<td width="25%"><div align="center"><b></b></div></td>
<td width="25%"><div align="center"><a href="#" name="link1" id="link1" onMouseOver="MM_showMenu(window.mm_menu_1228152303_0,51,16,null,'link1')" onMouseOut="MM_startTimeout();">MENU1</a></div></td>
<td width="25%"><div align="center"><a href="#" name="link2" id="link2" onMouseOver="MM_showMenu(window.mm_menu_1228152333_0,51,16,null,'link2')" onMouseOut="MM_startTimeout();">MENU2</a></div></td>
<td width="25%"><div align="center"></div></td>
</tr>
</table>
</body>
</html>

Voici comment je l'ai inséré :

<html>
<head>
<title>essai 1</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

<?php include('test3.inc.php'); ?>
</html>
</head>

<body>
<html>
<div id="global">
<p>&nbsp;</p>
<p>Bonjour et bienvenue sur ce site </p>
</p>
</div></body>
</html>

Dans Dreamweaver MX, je peux modifier les lignes de code en mode Code (Tout apparâit alors correctement lorsque je fais un aperçu dans IE. Mais je ne peux rien modifier en mode création ! Etmoi, vu mon niveau, je ne crée mes pages qu'en mode Création !

Une fenêtre s'affiche à chaque fois que je veux ajouter quelques chose avec le message :

L'exécution de cette modification nécessiterait un changement de code qui est verrouillé par un modèle ou un traducteur. LA modification sera ignorée.

HELP !!

elle
 Posté le 28/12/2009 à 18:18 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Grande Maîtresse astucienne

Ben là si tu inclus des balises head, body, etc. dans d'autres balises head, body, etc., tu vas avoir un problème de code, c'est certain.

Ton include ne doit pas contenir ces balises si elle sont déjà dans le code de la page où tu mets l'include...

elle
 Posté le 28/12/2009 à 18:21 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Grande Maîtresse astucienne

Et ça, c'est quoi?

</html>
</head>
<body>
<html>

La structure d'une page est :

<html>
<head>

</head>

<body>

</body>
</html>




Une seule tête, un seul corps!



Modifié par elle le 28/12/2009 18:22
philbouq
 Posté le 28/12/2009 à 18:29 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Merci ELle (encore ! )

J'ai supprimé les HEAD et les BODY dans le fichier .inc.php :

<html>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript">
<!--
function mmLoadMenus() {
if (window.mm_menu_1228152303_0) return;
window.mm_menu_1228152303_0 = new Menu("root",68,20,"Georgia, Times New Roman, Times, serif",14,"#0033CC","#0033CC","#FFFFFF","#CCCCCC","left","middle",3,0,1000,-5,7,true,false,true,0,true,true);
mm_menu_1228152303_0.addMenuItem("menu1","location='bibliographie.htm'");
mm_menu_1228152303_0.fontWeight="bold";
mm_menu_1228152303_0.hideOnMouseOut=true;
mm_menu_1228152303_0.bgColor='#555555';
mm_menu_1228152303_0.menuBorder=1;
mm_menu_1228152303_0.menuLiteBgColor='#FFFFFF';
mm_menu_1228152303_0.menuBorderBgColor='#777777';

window.mm_menu_1228152333_0 = new Menu("root",68,20,"Georgia, Times New Roman, Times, serif",14,"#0033CC","#0033CC","#FFFFFF","#CCCCCC","left","middle",3,0,1000,-5,7,true,false,true,0,true,true);
mm_menu_1228152333_0.addMenuItem("menu2","location='collections.htm'");
mm_menu_1228152333_0.fontWeight="bold";
mm_menu_1228152333_0.hideOnMouseOut=true;
mm_menu_1228152333_0.bgColor='#555555';
mm_menu_1228152333_0.menuBorder=1;
mm_menu_1228152333_0.menuLiteBgColor='#FFFFFF';
mm_menu_1228152333_0.menuBorderBgColor='#777777';

mm_menu_1228152333_0.writeMenus();
} // mmLoadMenus()
//-->
</script>
<script language="JavaScript" src="mm_menu.js"></script>

<script language="JavaScript1.2">mmLoadMenus();</script>
<p>&nbsp;</p>
<p align="center"><b>BONJOUR</b></p>
<table width="100%" border="0">
<tr>
<td width="25%"><div align="center"><b></b></div></td>
<td width="25%"><div align="center"><a href="#" name="link1" id="link1" onMouseOver="MM_showMenu(window.mm_menu_1228152303_0,51,16,null,'link1')" onMouseOut="MM_startTimeout();">MENU1</a></div></td>
<td width="25%"><div align="center"><a href="#" name="link2" id="link2" onMouseOver="MM_showMenu(window.mm_menu_1228152333_0,51,16,null,'link2')" onMouseOut="MM_startTimeout();">MENU2</a></div></td>
<td width="25%"><div align="center"></div></td>
</tr>
</table>
</html>

Mais je ne parviens toujours pas à écrire mes pages.

Et j'ai aussi supprimé les balises en trop Elle.

Au secours, je vais craquer

philbouq
 Posté le 28/12/2009 à 18:32 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

J'oubliais : Lorsque je coupe l'écran en deux (CODE/CREATION)

les lignes de code que je tape en haut dan sla partie Code n'apparaissent pas en bas dans la partie Création !

Mais quand je place les fichiers sur le serveur, tout apparaît correctement (sauf que je rédige mes pages à l'aveuglette et que j'en suis incapable!)

P.S : Si je veux écrire avant la ligne de code include lorsqu'elle est dans le corps de la page, il n'y a pas de souci. Tout se fait normalement.

Mais dès que je mets le code include dans l'en-tête ou en début de corps, ça merde !

Je suis au bord de la crise de nerfs là...



Modifié par philbouq le 28/12/2009 18:42
elle
 Posté le 28/12/2009 à 18:46 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Grande Maîtresse astucienne

Tu as laissé les balises html et tu te trouves aussi à inclure une partie du code de ton menu (celui entre <p> et </table>) dans le head alors qu'elle doit se trouver dans le body, non?

philbouq
 Posté le 28/12/2009 à 20:43 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

YES !!!

Merci Elle. Les balises html devaient en effet bloquer tout ça !

Mais tu vas rire, maintenant, ce sont les menus déroulants qui ne fonctionnent plus dans mon .inc.php !!

Je suis MAUDIT !!!!!

Publicité
elle
 Posté le 28/12/2009 à 21:01 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Grande Maîtresse astucienne

elle a écrit :

tu te trouves aussi à inclure une partie du code de ton menu (celui entre <p>

et </table>) dans le head alors qu'elle doit se trouver dans le body, non?

Et ça, tu as corrigé?

philbouq
 Posté le 28/12/2009 à 21:15 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Je ne comprends pas ce que tu veux dire !

Et je commenc esérieusement à en avoir plein le dos là. je n'arrive à rien.

tantôt ça marche, tantôt ça marche pas.

Je craque.

J'ai modifié les liens dans mes menus déroulants vers les pages en .php mais lorsque je vais sur la page d'accueil (http://chiensdetraineau.free.fr, qui contient un nclude avec le tableau et les menus juste en dessous) le lien Chroniques/histoire renvoie vers lma page en htm et pas vers celle en php.

les menus déroulants sont "vides" dans la page http://chiensdetraineau.free.fr/chroniques.php alors que j'y ai mis l emême include que dans la page index.

Suis vraiment dépité là. Une journée pour RIEN.

EDIT : une autre !
Dans la page en .inc.php, lorsque je demande d'afficher le menu contextuel des menus, il apparaît comme vierge alors que les lignes de code "semblent" correctement remplies

EDIT : dans ma page code, les <? et > qui encadrent l'include apparaissent en rouge.
Cela signifie qu'ils sont erronés ?



Modifié par philbouq le 28/12/2009 21:29
elle
 Posté le 28/12/2009 à 21:41 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Grande Maîtresse astucienne

philbouq a écrit :

J'ai modifié les liens dans mes menus déroulants vers les pages en .php mais lorsque je vais sur la page d'accueil (http://chiensdetraineau.free.fr, qui contient un nclude avec le tableau et les menus juste en dessous) le lien Chroniques/histoire renvoie vers lma page en htm et pas vers celle en php.

Ben moi, je vois ça pour le lien dans ton code :

 mm_menu_1225190929_0.addMenuItem("Histoire","location='chroniques.htm'");
philbouq
 Posté le 28/12/2009 à 22:00 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Le crétin !

j'ai enregistré mes fichiers mais je crois que j'ai oublié de les placer sur le serveur !
Je vérifie et te dis ça tout de suite Elle.

Merci en tous cas d'ête encore là !!

philbouq
 Posté le 28/12/2009 à 22:03 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Ben non ! là, c'est bein en .php mais ça conduit toujours à la page en .htm !!

elle
 Posté le 28/12/2009 à 22:16 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Grande Maîtresse astucienne

Dans le code de ton menu, je vois encore tous les liens en htm.

philbouq
 Posté le 28/12/2009 à 22:35 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

c'est parce que c'est la page index.htm qui s'affiche.

lorsque je modifie l'extension vers .php, la page ne ressemble plus à l'original. Les tableaux sont défaits et tout est à la suite. C'est pas du tout ma page ça !

essaie maitenant : http://chiensdetraineau.free.fr

Pire :

sous IE, l apage est totalement démantibulée
sous Firefox, elle a une bonne gueule mais les menus déroulants n'aparaissent pas...



Modifié par philbouq le 28/12/2009 22:41
elle
 Posté le 28/12/2009 à 22:48 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Grande Maîtresse astucienne

philbouq a écrit :

c'est parce que c'est la page index.htm qui s'affiche.

lorsque je modifie l'extension vers .php, la page ne ressemble plus à l'original. Les tableaux sont défaits et tout est à la suite. C'est pas du tout ma page ça !

Si le fait de modifier l'extension de ta page en modifie l'apparence, c'est parce que la page index.php interprète le code php. Le problème viendrait donc de ton code php. Essaie de simplement modifier l'extension de ta page index sans rien changer au code, donc sans mettre d'include, pour voir.

Édité : tu regardes ta page en local ou en ligne, quand elle est avec l'extension php?



Modifié par elle le 28/12/2009 22:49
Publicité
philbouq
 Posté le 28/12/2009 à 23:04 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Si j'enlève la ligne de code de l'include, tout va bien.
Comme je disai un peu plus haut, les <? et ?> apparaissent en rouge dans le mode code de DW MX. Ce sont eux qui foirent tout alors ?

Malcolm
 Posté le 29/12/2009 à 01:41 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

hello

dans edition/préférences de DW, tu as dans un des sous items une possibilité de réglage des composants serveurs ... Et une case à cocher "afficher les fichiers inclus". Décoche-la, tu verras que ton include ("graphiquement") se limitera à un petit carré jaune. ça sera plus simple.

l'include est une véritable inclusion, c.à.d. que le serveur Apache/PHP va prendre la page 2, lire son code source, et l'injecter dans la page 1. Donc bien entendu, la page 2 n'a pas forcément besoin de contenir un <html>, <head>, etc.

Petite précision sur le nom : tu peux nommer comme tu veux les fichiers à inclure. Que ça soit include('toto.html'), ou include('toto.inc'), ou encore include('toto.html.inc.txt.jpg.php') peu importe : l'opértio faite par le serveur sera toujours la même.

Tu trouveras beaucoup de sites qui conseillent de nommer ces fichiers inclus avec l'extension ".inc", je trouve personnellement que c'est une très mauvaise idée, parce que si (par malheur) quelqu'un arrive à deviner le dossier où sont situés ces fichiers, par exemple dans /inc/, alors le simple appel dans le navigateur affichera leur code source ...

en clair, si tu as inc/titi.inc, et que je fais http://tonsite/inc/titi.inc, comme mon navigateur ne sait pas ce que c'est (c'est pas un .htm ni .html) il l'affichera comme un simple texte.

Si tes fichiers ne contiennent que de l'HTML, c'est pas grave du tout. S'ils contiennent du PHP, c'est dommage de livrer tes secrets ... {#}

Dernière petite précision : il existe en réalité 4 fonctions pour faire cela.

Ce sont :

include('...');

include_once('...');

require('...');

require_once('...');

la différence entre include et require, c'est que si jamais le fichier n'est pas trouvé (parce que l'arborescence est fausse par exemple), avec include tu auras un gros "Warning" sur la page. Avec require, tu auras le même warning, mais sur une page blanche : en effet, require stoppe net l'exécution de la page en cas d'erreur.

Pour ma part, je préfère donc le require à l'include.

et pour ce qui est du "_once", ça veut dire n'inclure qu'une fois.

Que se passe-t-il, si jamais dans page1 tu inclues page2, laquelle inclue page3, et qu'en bas de la page1 (donc bien après l'inclusion de page2) tu inclues manuellement page3 ?

Page3 se rtrouve incluse 2 fois, et si tu as défini une fonction dedans, par exemple, ça plantera (car une fonction ne peut pas être définie 2 fois). Le _once (include_once ou require_once) n'appellera la page3 qu'une seule fois, car il se rendra compte que la 2ème fois, tu inclueras une page qui a déjà été incluse.

philbouq
 Posté le 29/12/2009 à 08:51 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Merci Malcolm.

Bien pris pour les extensions du fihier à inclure.

Au nivaeu des secrets, mes pages ne contiennent que du texte et des photos donc, pas de souci particulier avec ça !

En attendant, ça ne marche toujours pas !
- la page index.php ne ressemble à rien dès que j'y insère l'include.
- les <? et ?> aparaissent en rouge des la page code. Et l'inspecteur de code les signale erronées.

C'est reparti pour une journée de tirage de cheveux...

philbouq
 Posté le 29/12/2009 à 10:19 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

J'ai supprimé mon fichier à inclure et l'ai totalement retapé. Je l'ai inséré dans ma page index.
On progresse puisque tout apparaît normalement. (lien dans la bannière de ma signature)

MAIS : les sous menus ne fonctionnent pas ! J'ai encore merdé quelque part ?

philbouq
 Posté le 29/12/2009 à 20:20 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bon, ben ondirait que ça marche presque...

Juste un petit souci de menu déroulant

Publicité
Page : [1] 
Page 1 sur 1

Vous devez être connecté pour participer à la discussion.
Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !
Recevoir PC Astuces par e-mail


La Lettre quotidienne +226 000 inscrits
Avec l'actu, des logiciels, des applis, des astuces, des bons plans, ...

Les bonnes affaires
Une fois par semaine, un récap des meilleurs offres.

Les fonds d'écran
De jolies photos pour personnaliser votre bureau. Une fois par semaine.

Les nouveaux Bons Plans
Des notifications pour ne pas rater les bons plans publiés sur le site.

Les bons plans du moment PC Astuces

Tous les Bons Plans
7,28 €Câble antivol Ewent EW1241 (1.5 m, à combinaison) à 7,28 €
Valable jusqu'au 26 Juillet

Amazon fait une promotion sur le câble antivol Ewent EW1241 qui passe à 7,28 € seulement au lieu de 12 €. Ce câble de 1,5 m est universel et facile à utiliser avec n'importe quel ordinateur portable ou de bureau avec un slot de sécurité. intégré. Protégez votre ordinateur contre le vol grâce à la serrure à combinaison à 4 chiffres.


> Voir l'offre
87,90 €Tondeuse à gazon électrique Bosch ARM 32 à 87,90 €
Valable jusqu'au 30 Juillet

Amazon fait une promotion sur la tondeuse à gazon électrique Bosch ARM 32 qui passe à 87,90 € livrée gratuitement alors qu'on la trouve ailleurs à partir de 109,99 €.  Avec la tondeuse à gazon ARM 32 Bosch, rien de plus facile que de bien entretenir sa pelouse en un minimum de temps. Équipée d’un puissant moteur de 1 200 W, elle tond sans effort et efficacement l’herbe haute ou dense et assure une tonte parfaite.

Sa grande légèreté et sa forme compacte permettent de contourner facilement les obstacles. Son guide herbe permet une tonte au ras des murs, des parterres de fleurs et des bordures.  La hauteur de coupe est réglable de 20 à 60 mm. Bac de ramassage de 31 litres. La tondeuse à gazon ARM 32 est par ailleurs peu encombrante. Le guidon peut être replié après utilisation.


> Voir l'offre

Sujets relatifs
créer mappage avec dreamweaver!
Codage HTML dans Dreamweaver avec une template Photoshop
incompatibilité fonction php include avec html5 et ie8
feuille de style avec dreamweaver CS6
souci avec recaptcha
mail envoyer souci avec des if et des else
Problème avec include et url
configuration répertoire hôte avec Dreamweaver MX
souci avec un gif animé
souci de montage avec fopen et fputs
Plus de sujets relatifs à souci d''include() avec Dreamweaver
 > Tous les forums > Forum Forum des Webmasters