Souci avec la fontion include

Petit nouveau ! | 4 Messages

15 juil. 2008, 21:06

Bonjour,

Sur la page index de mon site, j'ai un menu à gauche et un menu en haut.

Je précise que je débute en html et aussi en php et j'ai déjà été sur le site du zéro plusieurs fois mais sur ce site, il n'est pas indiquer la solution à mon problème.

Je précise aussi que je travaille avec Dreamweaver.

Je voudrais que mes menu se retrouve sur toutes mes autres pages.

Pour cela, j'ai utilisé la fonction "include" de php.

Bon je sais comment inclure une page web dans une autre avec la fonction include (avec Dreamweaver) mais mon problème n'est pas là.

Mon menu de gauche et celui du haut a des liens et lorsque je clique sur mes liens, je voudrais que ce menu se setrouve charger sur mes autres pages, ce qui n'est pas le cas car lorsque je clique sur un de mes liens de mon menu de gauche ou celui du haut, ma page se change mais sans mes menus.

Comment faire en sorte que mon menu de gauche et celui du haut se retrouve charger sur mes autres pages lorsque je clique sur les liens de mes menus ?

Merci de me renseigner.

Sébastien

Eléphanteau du PHP | 41 Messages

15 juil. 2008, 21:18

faire des pages du genre index.php?cat=news et tout
La fonction utiliser est un
include_once()
Je peu t'aider a le faire car si je te le fait je vais me faire taper par le bonhomme en vert qui se balade sur le fofo :axe:
Voilà un exemple pour faire ce genre de menu:
<?php
					if(!isset($_GET['cat']))
						{
						echo'Choisissez une rubrique de la boutique ci-dessus';
						}
					elseif($_GET['cat'] == "1")
						{
						include_once("boutique_armures.php");
						}
					elseif($_GET['cat'] == "2")
						{
						include_once("boutique_montures.php");
						}
					else
						{
						echo'Choisissez une rubrique de la boutique ci-dessus';
						}
					?>
Ensuite pour tes adresses suffi de mettre :
<a href="?&cat=1">Armures</a>
Tu n'est pas obliger de mettre cat mais a ce moment là tu doit changer comme ça:
elseif($_GET['cat'] == "1")  // sa deviens
elseif($_GET['page'] == "1") // ça
Tu peu aussi changer le 1 par ce que tu veux ;)

Petit nouveau ! | 4 Messages

16 juil. 2008, 01:51

Merci Deam's pour ta réponse rapide.

Mais le souci c'est que je n'y connais rien au php, je sais juste mettre la fonction include grâce à Dreamweaver parce-que j'ai vu comment il l'intègre et ensuite je rénome ma page en php, sinon je ne connais pas le php.

Ca serait plus simple et plus facile pour moi si tu m'expliques cela en détail par msn par exemple, mon adresse est [email protected] .

Ce-que je veux c'est de pouvoir retrouvé mes menus sur mes autres pages lorsque je clique sur mes liens qui sont présent dans mon menu de gauche.

Merci d'avance.

Séb

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

16 juil. 2008, 10:16

Seb19780 : tu sais, si tu as des explications sur ce forum, cela profitera à tous, alors que sur ta messagerie perso, cela ne profitera qu'à toi.
Pour ma part, j'ai cessé d'utiliser Dreamweaver il y a longtemps, donc je ne peux pas t'aider si tu veux juste qu'on te dise de cliquer ici et là.

Sinon, l'idée est que l'include() va te permettre d'insérer virtuellement un fichier dans ta page. include() est une instruction PHP, tu ne peux donc l'utiliser que dans un fichier .php
Ensuite, sur chacune de tes autres pages, tu devras de nouveau utiliser l'include().
L'instruction include() te permet d'éviter de répéter ton menu, et de ne le changer que dans le fichier menu.html, mais tu dois répéter l'inclusion, si tu veux retrouver ton menu partout.

Autre piste : je crois savoir que Dreamweaver a une gestion de modèles de pages.
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.

Eléphanteau du PHP | 41 Messages

16 juil. 2008, 10:27

Pour ma part j'ai passer mon site en include_once() hier comme ça les pages sont plus légère!
Pour t'aider Seb19780 voilà mon index.php que tu puisse voir comment fonctionne la fonction include_once() :
<!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>Born to Be WIld ~ Eu. Drek'Thar</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link href="style.css" rel="stylesheet" type="text/css" />
</head>
<?php
require('roster_config.php');
require('config.php');
include('haut.php');
include('menu_gauche.php');
include('menu_droite.php');
?>
<?php
                    if(!isset($_GET['page']))
						{
						echo''.include("news.php");'';
						}
                    elseif($_GET['page'] == "news")
                        {
                        include_once("news.php");
                        }
                    elseif($_GET['page'] == "les_membres")
                        {
                        include_once("nos_membres.php");
                        }
					elseif($_GET['page'] == "charte")
                        {
                        include_once("charte.php");
                        }
					elseif($_GET['page'] == "roster")
                        {
                        include_once("infos_roster.php");
                        }
					else
						{
						echo''.include("news.php");'';
						}
                    ?> 
<?
include('bas.php');
?>
</html>
Donc je t'expliquer:
<?php
require('roster_config.php');    //ici on utilise la fonction require()
require('config.php');               //ici aussi
include('haut.php');                 //fonction qui inclus le haut de ma page
include('menu_gauche.php');   //fonction qui inclus le menu de gauche
include('menu_droite.php');     //fonction qui inclus le menu de gauche
?>
La fonction require():

Cette fonction vas aller "regarder" se qui se trouve dans le fichier désigner.
Il est important que dans ses fichiers tu ai les informations de connexion et par exemple dans le fichier roster_config.php qui est important pour menu_droite.php qui est composer de cette manière:
<?php
require('img.php');
?>
<?php
$r_priest = "$ouvert";     
$r_priest_des = "Si bonne candidature: Ombre.";
de manière a afficher la bonne image si la valeur $ouvert ou $fermer.
et le menu de droite lui est composer de cette manière:
<tr height="19"><td width="18" valign="top" align="right"><img height="19" src="<?php echo $r_priest ?>" width="18" alt="Recrutement prêtre" /></td>
<td class="menu5"><b><a href="index.php?page=roster#prêtre" title="<?php echo $r_priest_des ?>">Prêtre</a></b></td></tr>
donc la fonction include('menu_droite.php') inclus ce que je te montre au dessus!


Maintenant la fonction include_once() :
<?php
                    if(!isset($_GET['page']))
						{
						echo''.include("news.php");'';
                        }
                    elseif($_GET['page'] == "les_membres")
                        {
                        include_once("nos_membres.php");
                        }
					elseif($_GET['page'] == "charte")
                        {
                        include_once("charte.php");
                        }
					elseif($_GET['page'] == "roster")
                        {
                        include_once("infos_roster.php");
                        }
					else
						{
						echo''.include("news.php");'';
						}
                    ?> 
Explications:
if(!isset($_GET['page']))
Cette partie là de la fonction permet de désigner comment vas être l'adresse de la page.
Exemple: http://nom_du_site.com/index.php?page=news
Si tu souhaite changer "page" par une autre valeur il faut que tu remplace tous les $_GET['page'] par la valeur que tu souhaite tel que $_GET['menu'] ou encore $_GET['cat']...
echo''.include("news.php");'';
Cette partie est extrémement importante!
En effet c'est ce qui vas se trouver sur la page index.php(pas index.php?page=)
Pour ma part elle inclus le fichier news.php:
				<div id="content">
				<?php
	$db = mysql_connect($host, $user, $pass_user) or die ("Problème de connexion au serveur de base de données");
	mysql_select_db($table,$db) or die ("Problème de connexion à la base de données");
	$sql="select * FROM contenu ORDER BY idNews DESC;";
	$requete=mysql_query($sql);
	while ($ligne=mysql_fetch_array($requete))
	{
		echo "<div class='page'>";
		echo "<div class='head_page'>".$ligne["titreNews"];
		echo "</div>";
		echo "<div class='content_page'>".$ligne["msgNews"];
		echo "</div>";
		echo "<div class='footera'>";
		echo "</div>";
		echo "</div>";
	}
?>
C'est la partie ou l'ont vois les news du site.
Il faut également répéter le premier echo après le else{ se trouvant en bas et terminer par } pour fermer la boucle.
Pour les autres pages tu ne dois mettre que dedans que ce que tu souhaite qui s'affiche au centre de ta page:
Par exemple pour charte.php
<!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>Born to Be WIld ~ Eu. Drek'Thar</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link href="style.css" rel="stylesheet" type="text/css" />
</head>

				<div id="content">		
					<div class='page'>
					<div class='head_page'>Charte de notre guilde:</div>
					<div class='content_page'>
<center>Bonjour à tous, nous nous présentons:<br/><br/>

Nous sommes la guilde Born to Be Wild, guilde PvE<br/><br/>

<font color="#f3be1b"; size="4px"><u><b>Notre objectif</b></u></font><br/><br/>

Progresser dans le PvE VHL proposé par Blizzard en ne jouant que le weekend pendant les vacances scolaires.<br/><br/>

<font color="#f3be1b"; size="4px"><b><u>Nos critères</font></u></b><br/><br/>

<font color="#f3be1b"><u>Les disponibilités</u></font><br/><br/>

... <br/>
<font color="#f3be1b"><u>Horaires:</u><br/></font>
-<b>Vendredi soir: 20h30-0h00</b><br/>
-<b>Samedi soir: 20h30-0h00</b><br/>
-<b>Dimanche Soir:20h30-0h00</b><br/>
Le reste de la semaine sera libre, les instances héroïques et le PvP est donc encouragé durant cette période.<br/><br/>

En week end, si les raids est annulé par faute de joueurs ou de classes, des instances héroïques seront organisées (ou PvP).<br/><br/>

.........
</div>
<div class='footera'>
  </div>
  </div>
</html>
Voilà tu n'as plus qu'a rajouter a la fin de tout cela
<?php
include('bas.php');
?>
Qui vas inclure le bas de ma page :)

Dernière chose:
Il est important de mettre en charset:
charset=iso-8859-1
sinon tu risque d'avoir des problèmes avec les accents.


Voilà j'espère avoir pu t'aider

Petit nouveau ! | 4 Messages

16 juil. 2008, 14:27

Bonjour mere-teresa,

Si un membre de ce forum veut bien m'aider par msn ou en privé, rien ne l'en empêchera et cela me permettra d'avoir une aide plus facile car sur un forum, une réponse n'aide pas forcément assez alors qu'en privé, il est plus facile d'aider.

Comme je l'ai dit, je sais utilisé l'include mais ce n'est pas ce-que je veux.

Comme je l'ai dit, j'ai un menu avec des liens et mon menu est fait avec un calque par Dreamweaver.

Je le redis, je n'y connais rien au php. Je veux juste retrouvé mes me us sur mes autres pages et si possible sans passer par l'include.



Sinon, merci Dream's pour ton aide rapide et pour ta patience.

Je vais essayer ton explication.

Sinon dit moi, lorsque je clique sur mes liens, je veux que mon menu soit retrouvé automatiquement sur mes autres pages comme je t'ai expliquer et je demande si défois il existe t'il pas une syntaxe ou un code à appliquer dans mon code source pour que je puisse retrouvé mes menus sur mes autres pages ? , sans passer par l'include ?

Cordialement

Séb

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

16 juil. 2008, 15:22

seb19780 : bah, j'ai pas effacé ton MSN, hein, donc pas de stress.
Ensuite, as-tu pensé à utiliser des frames ?
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.

Mammouth du PHP | 558 Messages

16 juil. 2008, 15:24

et pourquoi tu ne veux pas utiliser d'include c'est la plus simple des solutions pourquois faire simple quand on peux faire compliquer sa doit-etre sa ta devise...

Eléphanteau du PHP | 41 Messages

16 juil. 2008, 17:36

avec la solution que je t'ai donner les menues sont inclues sur toutes les pages!

Petit nouveau ! | 4 Messages

16 juil. 2008, 17:39

Bonjour hakazizi,

Je n'ai jamais dit que je ne voulais pas faire d'include et je rectifirais un mot de ta phrase par " pourquois faire "compliquer" quand on peux faire "simple" et non pas l'inverse.

Je ne veux pas faire compliquer, je veux faire les comple le plus simple possible mais pour ceux qui connaissent bien le php, c'est plus facile de faire simple.

Je l'ai dit, je n'y connais rien au php, je fais un peu les includes grâce à Dreamweaver.

Cordialement

Séb



Mere-Teresa,

Je n'ai aucun stress !, je disais simplement qu'il est plus facile d'être aider par msn pour une aide personnalisé.

Oui j'ai pensé au frames, que j'ai d'ailleurs utilisé mais les frames ne sont pas toujours pratiques à cause du référencement du site et je préfère utilisé les includes qui sont mieux que les frames.



Dream's, merci de m'avoir renseigner à mes questions et de m'avoir aider, je vais me basé sur ton aide.

Séb