Pages :
Bonjour

Nouveau sur le forum, j'ai vu que d'autres avant moi avaient galéré sur mon pb, moi depuis 3 jours !!!

Je n'arrive pas à trouver ou est l'erreur dans mon code pour inclure un fichier dans un autre.

Mon fichier dont je vous met le code s'appelle accueiltest.php, normal le php ou je dois resté en html, 1ere question !!

Ensuite j'ai créé un fichier toto.txt tout bete sous word.
J'ai essayé avec d'autres pages html à la place de toto.txt.

Nada Rien ne marche, j'ai moi aussi un blanc en lien.


Je me doute que c'est une grosse couennerie mais je ne trouve pas.

Voici le code si un géni ici-bas à la solution.

D'avance merci

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>accueil site</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<style type="text/css">
/* CSS */
body {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 0.8em;
margin: 0;
padding: 0;
}
#header {
height: 100px;
margin-left: 15%;
margin-right: 15%;
background-color: #ccc;
}
#conteneur {
position: absolute;
width: 100%;
height: 500px;
background-color:#ccc;
overflow: auto;
}
#centre {
margin-left: 15%;
margin-right: 15%;
width: auto;
height: 85%;
background-color:#fff;
overflow: auto;
}
#gauche {
position: absolute;
left:0;
width: 15%;
}
#droite {
position: absolute;
right:0;
width: 15%;
background-color:#666;
}



#menu ul
{
margin-left: 0;
padding-left: 0;
list-style-type: none;
font-family: Arial, Helvetica, sans-serif;

}

#menu a
{
display: block;
padding: 3px;
width: 70%;
background-color: #bbb;
border-bottom: 1px solid #eee;
}

#menu a:link, #navlist a:visited
{
color: #EEE;
text-decoration: none;
}

#menu a:hover
{
background-color: #aaa;
color: #000;
}


}
p {margin: 0 0 10px 0;}


</style>
</head>

<body>

<div id="conteneur">

          <div id="header">
		  
</div>
			<div id="gauche">

		
			
          <dl id="menu">
<ul id="navlist">
<li id="active"><a href="accueiltest.php?page=presentation" id="current">Item one</a></li>
<li><a href="accueiltest.php?page=2">Item two</a></li>
<li><a href="accueiltest.php?page=3">Item three</a></li>
<li><a href="accueiltest.php?page=4">Item four</a></li>
<li><a href="accueiltest.php?page=5">Item five</a></li>
</ul>
</dl>

<dl id="menu">
<ul id="navlist">
<li id="active"><a href="#" id="current">Item one</a></li>
<li><a href="#">Item two</a></li>
<li><a href="#">Item three</a></li>
<li><a href="#">Item four</a></li>
<li><a href="#">Item five</a></li>
</ul>
</dl>
</div>

        <div id="centre">
	

<?php 
if (!isset($_GET['page'])) $page= 'accueil41'; else $page= $_GET['page']; 
 switch($page)
{
case 'accueil': include ('accueil.txt');break;
case 'presentation': include ('toto.txt');break;
case 'suite':include ('suite.txt');break;
case 'fin':include ('fin.txt');break;
} 
?>


	

  
</div>

<div class="bas">Cette partie basse reste fixe</div>
</body>
</html>

Modifié par fredLille (29 Mar 2006 - 18:19)
Administrateur
Bonjour et bienvenue parmi nous Smiley smile

En tant que modérateur, je me dois de te faire remarquer que tu n'as malheureusement pas respecté l'une des Règles de base du forum qui est d'afficher les codes et exemples proprement à l'aide des boutons [ code]... ici ton code HTML, CSS, PHP, etc.[ /code] (sans espace).

Je te remercie par avance de bien vouloir éditer ton message afin de le rendre conforme à cette règle. Smiley cligne

D'ailleurs, je rappelle que le lien qui apparaît en bandeau tout en haut du forum ("Nouveau sur le forum ?...") est important. Il contient des pistes de recherche, des indications sur les règles de vie de la communauté, etc.
Il serait courtois de ta part de bien vouloir en prendre connaissance.

Bonne continuation Smiley smile

upload/1-code.gif
OK désolé j'étais tellement pressé en me disant que sur ce forum que je venais de découvrir quelqu'un aurait peut-être la réponse à mon bug.

Je viens d'éditer mon message, et effectivement cela semble plus clair comme cela.

Merci

Fred
Bonsoir,

Dans la mesure où cette page accueiltest.php contient du code PHP, son extension est tout à fait justifiée. Elle est obligatoire afin que le code soit interprété.

L'erreur se situe au niveau du switch pour sélectionner la page à inclure :


<?php 
if (!isset($_GET['page'])) $page= 'accueil41'; else $page= $_GET['page']; 
switch($page)
{
   case 'accueil': include ('accueil.txt');break;
   case 'presentation': include ('toto.txt');break;
   case 'suite':include ('suite.txt');break;
   case 'fin':include ('fin.txt');break;
} 
?>


Si la variable page n'a pas été initialisée dans l'URL, alors la logique veut que la page d'accueil soit incluse. Or ici, lorsque ce cas se présente, on initialise $page à 'accueil41' (?). Aucun des cas de figure énumérés dans le switch ne correspond à cette chaîne, il faut donc bien évidemment supprimer ces deux caractères.

Par ailleurs, le problème se présentera à nouveau si l'utilisateur saisit une chaîne farfelue dans l'URL. Une solution consiste à utiliser la clause default pour tous les cases de figures ne correspondant pas à des cas spécifiés. Voici donc ci-dessous la version corrigée :


<?php 
if (!isset($_GET['page'])) $page = 'accueil'; else $page = $_GET['page']; 
switch($page)
{
   case 'presentation':
      include ('toto.txt');
      break;
   case 'suite':
      include ('suite.txt');
      break;
   case 'fin':
      include ('fin.txt');
      break;
   case 'accueil':
   default:
      include ('accueil.txt');
      break;
} 
?>


Bonne continuation.
Modifié par Romain H. (29 Mar 2006 - 18:51)
Oui j'avais aussi relevé cette incoherence du à mes nombreux essais mais malheureusement cela ne change rien.

Je rejoins mon code corrigé au cas ou .
Le fichier s'appelle accueiltest.php

[code]<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>accueil site</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<style type="text/css">
/* CSS */
body {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 0.8em;
margin: 0;
padding: 0;
}
#header {
height: 100px;
margin-left: 15%;
margin-right: 15%;
background-color: #ccc;
}
#conteneur {
position: absolute;
width: 100%;
height: 500px;
background-color:#ccc;
overflow: auto;
}
#centre {
margin-left: 15%;
margin-right: 15%;
width: auto;
height: 85%;
background-color:#fff;
overflow: auto;
}
#gauche {
position: absolute;
left:0;
width: 15%;
}
#droite {
position: absolute;
right:0;
width: 15%;
background-color:#666;
}



#menu ul
{
margin-left: 0;
padding-left: 0;
list-style-type: none;
font-family: Arial, Helvetica, sans-serif;

}

#menu a
{
display: block;
padding: 3px;
width: 70%;
background-color: #bbb;
border-bottom: 1px solid #eee;
}

#menu a:link, #navlist a:visited
{
color: #EEE;
text-decoration: none;
}

#menu a:hover
{
background-color: #aaa;
color: #000;
}


}
p {margin: 0 0 10px 0;}


</style>
</head>

<body>

<div id="conteneur">

          <div id="header">
		  
</div>
			<div id="gauche">

		
			
          <dl id="menu">
<ul id="navlist">
<li id="active"><a href="accueiltest.php?page=presentation" id="current">Item one</a></li>
<li><a href="accueiltest.php?page=presentation">Item two</a></li>
<li><a href="accueiltest.php?page=3">Item three</a></li>
<li><a href="accueiltest.php?page=4">Item four</a></li>
<li><a href="accueiltest.php?page=5">Item five</a></li>
</ul>
</dl>

<dl id="menu">
<ul id="navlist">
<li id="active"><a href="#" id="current">Item one</a></li>
<li><a href="#">Item two</a></li>
<li><a href="#">Item three</a></li>
<li><a href="#">Item four</a></li>
<li><a href="#">Item five</a></li>
</ul>
</dl>
</div>

        <div id="centre">
	

<?php 
if (!isset($_GET['page'])) $page= 'accueil'; else $page= $_GET['page']; 
switch($page)
{
   case 'presentation':
      include ('toto.txt'); break;
   case 'suite':
      include ('suite.txt'); break;
   case 'fin':
      include ('fin.txt'); break;
   case 'accueil':
   default:
      include ('accueil.txt'); break;
} 
?>



	

  
</div>

<div class="bas">Cette partie basse reste fixe</div>
</body>
</html>
Salut,

dans le doute j'ai fait le test moi même.

Je suis parti d'un copier/coller de ton code php et j'ai fait :

<div id="centre">
if (!isset($_GET['page'])) $page= 'accueil'; else $page= $_GET['page'];

switch($page)

{

   case 'presentation':
   
   include ('toto.txt'); break;

   case 'suite':

      include ('suite.txt'); break;

   case 'fin':

      include ('fin.txt'); break;

   case 'accueil':

   default:

      include ('accueil.txt'); break;

}

?>
</div>

<p>
<a href="?page=presentation">presentation</a> | <a href="?page=suite">suite</a> | <a href="?page=fin">fin</a>
</p>


C'est à dire que je n'ai rien fait du tout. Et ça fonctionne parfaitement. La preuve, cette page mise en lien n'a rien d'autre que le code ci dessus.

Donc une question : tes fichiers à inclure .txt sont ils bien dans le même dossier que le document .php ?
Modifié par clb56 (29 Mar 2006 - 20:08)
J'y perds mon latin, car oui mon fichier toto.txt et presentation.htm son bien dans le même répertoire.

As-tu essayé de tout copie-collé?

Je comprends plus rien, cela a l'air si simple !!!
fredLille a écrit :
mon fichier toto.txt et presentation.htm son bien dans le même répertoire.


Bon...

... Petite mise au point ...

... Mais c'est quoi ce bazard bon sang !!!

D'ou sort ton fichier presentation.htm ???? Smiley eek Smiley eek Smiley eek

Comment veux tu t'y retrouver toi même avec ce genre de coquille totalement non maitrisée.

De plus je ne t'ai pas parlé de ça.

Si on en reste strictement à ce dont tu parles (et on (tu) doit(s) en rester strictement à ce dont tu parles !!!) il s'agit de cinq fichiers. Ceux ci :

. accueiltest.php
. accueil.txt
. toto.txt (au passage à renommer d'urgence. Mais pas dans ce post c'est déjà assez confus comme ça)
. suite.txt
. fin.txt

Et aucuns autres. La question de base c'est sont ils bien tous dans le même dossier ?
Modifié par clb56 (29 Mar 2006 - 21:18)
Comme tu dis. Smiley fache

Bon dernière tentative.

J'ai effacé mon fichier accueiltest.php pour repartir de celui que j'ai mis juste dessus.
Les 4 fichiers txt sont bien dans le même répertoire, d'ailleurs il n'y a qu'un répertoire.

En voila un ( contenu sans importance je les ai fais en faisant du copie-colle.)


<h1>Page de Présentation</h1>

<pre>case 'presentation': include ('presentation.htm');break;</pre>
<
<p>accueil</p>

Modifié par Igor (29 Mar 2006 - 22:16)
Et mon CSS, est-il bon ou n'y aurait-il pas une coquille qui m'empecherait de voir la page alors que peut-etre elle se charge bien !!

C'est peut-etre une connerie mais débutant et fatigué cumulés, cela devient dur.

Au passage, merci à clb56 de son aide.

Smiley bawling
C'est bien ce que je disais, je suis vraiment débutant car je ne comprends pas ton post.

J'ai essayé de travailler avec PHP car j'ai vu sur ce site que c'était le mieux, qu'il fallait eviter les cadres etc pour le referencement.

Je pensais que prendre des bouts de codes sur differents tutoriaux, en essayant toutefois de comprendre en gros ce qui se passe suffirait à initialiser ma page, qui est la base de tout mon site à venir.

Dès que j'aurai trouvé comment remplacer le fonctionnement des bons vieux cadres ( j'avais testé il y a 5 ans) je devrais etre sauver.

Mais je commence à croire que c'est trop dur pour un débutant !!

Bon je vais me coucher.

Si demain tu peux revenir sur ton post précédent et m'orienter sur le comment faire ce serait sympa.

Bonne nuit

Frederic
Bonjour

Pour poursuivre mon probléme d'hier soir, j'aimerai valider une bonne fois pour toutes le concept de mon site entre l'include conditionnelle ( qui me pose par ailleurs probleme) et l'include simple si j'ai bien compris la reponse de clb56.
Ma problematique : une page d'accueil avec head-menu gauche-centre-menu droit comme le code ci-dessus le precise.

Chaque lien de mon menu me dirige vers une page d'accueil d'un travail photo, cette page pouvant elle-meme contenir d'autres liens vers par exemple un texte de presentation, une photo d'installation de l'expo, etc.
Dans la page il y a bien sur un principe de diaporama de l'ensemble des photos de la série en question, diaporama lancé par flash ou par lien d'un ensemble de vignette qui se deroule dans le menu droit.

Est ce que je suis clair, sinon pour info mon site ressemblera sur la conception à celui ci http://www. edwardburtynsky.com

Ma question, quelle solution appliquer pour que toutes les pages html s'inscrivent dans ma page d'accueil dans la partie centrale.

Est ce que je fais une page html séparée pour chaque présentation de photo, et que j'appelle cette page ( comment je fais pour qu'elle vienne se poser dans la partie centrale)?

En terme poids pour le rapatriement, le CSS étant dans un fichier séparé, ce n'est peut-etre pas trop lourd, mais qu'en est-il du referencement, j'ai pas du tout envie de me planter sur le sujet, mon site etant un outil dédié marketing de mon travail de photographe.


Merci à ceux qui auront compris ma problématique pour leurs remarques. Smiley rolleyes
Bonjour fredLille,

Oui, il faut que tu fasses un fichier pour chaque lien Smiley smile

Je pense que si tu n'y arrives pas avec "inclure un fichier dans un autre", c'est que tu n'as pas bien compris le mécanisme

En fait, tu as un fichier de départ (pour toi accueiltest.php) dans lequel tu as mis un cadre, lequel contient par défaut ta page d'accueil (qui est un autre fichier), grâce à une inclusion php.

Grâce à un menu, qui se trouve dans ton fichier de départ (accueiltest.php) tu vas pouvoir appeler dans ton cadre, autant de fichiers que tu en auras créés.

J'ai copié/collé ton code et ça marche très bien, le problème, c'est que tu t'es mélangé dans ce qu'il faut mettre comme destination, dans tes liens et dans le code php

Je te mets le code entier de ton travail, ça devrait te faire avancer pour la compréhension Smiley cligne

Par contre, j'ai créé des fichiers avec l'extension .php, si tu veux garder .txt, il faudra changer les extensions dans le fichier principal


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>accueil site</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<style type="text/css">
/* CSS */
body {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 0.8em;
margin: 0;
padding: 0;
}
#header {
height: 100px;
margin-left: 15%;
margin-right: 15%;
background-color: #ccc;
}
#conteneur {
position: absolute;
width: 100%;
height: 500px;
background-color:#ccc;
overflow: auto;
}
#centre {
margin-left: 15%;
margin-right: 15%;
width: auto;
height: 50%; /* j'ai mis à 50% pour éviter la barre de défilement */
background-color:#fff;
overflow: auto;
}
#gauche {
position: absolute;
left:0;
width: 15%;
}
#droite {
position: absolute;
right:0;
width: 15%;
background-color:#666;
}
#menu ul
{
margin-left: 0;
padding-left: 0;
list-style-type: none;
font-family: Arial, Helvetica, sans-serif;
}
#menu a
{
display: block;
padding: 3px;
width: 70%;
background-color: #bbb;
border-bottom: 1px solid #eee;
}
#menu a:link, #navlist a:visited
{
color: #EEE;
text-decoration: none;
}
#menu a:hover
{
background-color: #aaa;
color: #000;
} /*attention, ici il y avait 2 fermetures } */
p {margin: 0 0 10px 0;}
</style>
</head>
<body>
<div id="conteneur">
	<div id="header"></div>
	<div id="gauche">
		<dl id="menu">
			<ul id="navlist">
				<li id="active"><a href="accueiltest.php?page=accueil" id="current">Accueil</a></li>
				<li><a href="accueiltest.php?page=presentation">Présentation</a></li>
				<li><a href="accueiltest.php?page=suite">Suite</a></li>
				<li><a href="accueiltest.php?page=fin">Fin</a></li>
				<li><a href="accueiltest.php?page=5">Item five</a></li>
			</ul>
		</dl>
		<dl id="menu">
			<ul id="navlist">
				<li id="active"><a href="#" id="current">Item one</a></li>
				<li><a href="#">Item two</a></li>
				<li><a href="#">Item three</a></li>
				<li><a href="#">Item four</a></li>
				<li><a href="#">Item five</a></li>
			</ul>
		</dl>
	</div>
	<div id="centre">
	<?php 
	if (!isset($_GET['page'])) $page= 'accueil'; else $page= $_GET['page']; 
	switch($page)
	{
	case 'presentation': include ('presentation.php'); break;
	case 'suite': include ('suite.php'); break;
	case 'fin': include ('fin.php'); break;
	case 'accueil': default: include ('accueil.php'); break;
	} 
	?>
	</div>
</div>

</body>
</html>


rendu en ligne

Bon courage Smiley cligne
JE CRAQUE !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Smiley fache Smiley fache

J'ai recopié ton code et voila ce qui se passe

Firefox ne peut trouver le fichier à l'adresse /U:/Nouveau dossier/accueiltest.php?page=presentation.

Alors que j'ai sous le répertoire Nouveau dossier les fichiers suivants:
accueiltest.php, fin.php, presentation.php et accueil.php

Le lien a l'air de fonctionner mais j'ai une page vide.

Pour info j'ai essayé avec IE5 et Mozilla

J'y comprends rien, tu me dis que cela marche et tu me le montres.

Je copie avec à priori une bonne architecture de mon répertoire et cela ne marche pas.

J'ai meme essayer de mettre la racine pour nommer mon fichier au cas ou mais NADA!!
Salut,
j'ai pas tout suivi au problème, mais tu as essayé en ligne (sur ton espace web) et en local ?
Modifié par Alan (30 Mar 2006 - 15:03)
Ba en fait c'était ça ma question suivante.

Au choix est ce que ton hégergeur te propose php ou est ce que tu utilises easyphp (voir google) en local.

Question annexe : comment ouvre tu ta page accueiltest.php?

Par un lien ou en cliquant directement sur le fichier ?
Je l'ouvre en cliquant dessus ( click droit + ouvrir avec IE5 ou Mozilla)

Pour easyphp, exact j'avais oublié je l'ai installé chez moi mais ici je suis au boulot et je ne l'ai pas.

J'essaie à 18h00 en rentrant et je vous dis si cette fois cela marche .

Merci encore de votre aide.

Vous êtes vraiment sympa de passer votre temps avec des boeufs comme moi !!!!
en local, tu as une page blanche, c'est normal, il faut mettre en ligne Smiley cligne
j'allais te poser la question aussi Smiley smile
Pages :