Bug d'um menu php/mysql

Résolu/Fermé
Signaler
Messages postés
24
Date d'inscription
mardi 6 avril 2010
Statut
Membre
Dernière intervention
1 juin 2011
-
Messages postés
24
Date d'inscription
mardi 6 avril 2010
Statut
Membre
Dernière intervention
1 juin 2011
-
Bonjour à tous,

je suis en train de développer un site pour des chiens. J'ai un petit bug au niveau de mon menu et je n'arrive pas à resoudre le problème.

Voici les codes:
<!-- mon fichier menu.php-->



<a href="?page=main">Accueil</a>
<ul>
<li>
<a href="?page=elevage">Notre élevage</a>
</li>
<li>
<a href="?page=allemand">Braque Allemand</a>
</li>
<li>
<a href="?page=weimar">Braque Weimar</a>
</li>
<li>
<a href="?page=males">Nos mâles</a>
</li>
<li>
<a href="?page=femelles">Nos femelles</a>
</li>
<li>
<a href="?page=chiots">Nos Chiots</a>
</li>
<li>
<a href="?page=photos">Albums photos</a>
</li>
<li>
<a href="?page=contact">Contact</a>
</li>
<li>
<a href="?page=reservations">Réservations</a>
</li>
<li>
<a href="?page=liens">Liens</a>
</li>
</ul>
</div>
<!--fin menu.php


<?php
/*l' index */
$page="main.php";
if(isset($_GET["page"])){
if($_GET["page"]=="main")
$page="main.php";
else if($_GET["page"]=="contact")
$page="contact.php";
else if($_GET["page"]=="photos")
$page="photos.php";
else if($_GET["page"]=="allemand")
$page="allemand.php";
else if($_GET["page"]=="weimar")
$page="weimar.php";
else if($_GET["page"]=="males")
$page="males.php";
else if($_GET["page"]=="femelles")
$page="femelles.php";
else if($_GET["page"]=="liens")
$page="liens.php";
else if($_GET["page"]=="chiots")
$page="chiots.php";
else if($_GET["page"]=="reservations")
$page="reservations.php";
else if($_GET["page"]=="elevage")
$page="elevage.php";
else
$page="error.php";
}

?>
<body>
<div id="header">
<?php include("./resources/includes/header.php"); ?>
</div>

<div id="menu">
<?php include("./resources/includes/menu.php");?>
</div>

<div id="content">
<?php include("./pages/$page"); ?>
</div>

<div id="footer">
<?php include("./resources/includes/footer.php"); ?>
</div>
</body>
</html>

Le problème est le suivant: chaque fois que je clic sur un lien pour appeler une page, en fait je tombe toujours sur la page d'acceuil, comme si ma boucle if(isset($_GET["page"])){ était ignorée ou ma variable $page valait quoiqu'il en soit "main.php" .
Merci d'avance pour votre aide.

2 réponses

Salut,

Il faut inclure ton html dans le php comme ceci :
<html>
<body>


<?php
/*l' index */
$page="main.php";
if(isset($_GET["page"])){
if($_GET["page"]=="main")
$page="main.php";
else if($_GET["page"]=="contact")
$page="contact.php";
else if($_GET["page"]=="photos")
$page="photos.php";
else if($_GET["page"]=="allemand")
$page="allemand.php";
else if($_GET["page"]=="weimar")
$page="weimar.php";
else if($_GET["page"]=="males")
$page="males.php";
else if($_GET["page"]=="femelles")
$page="femelles.php";
else if($_GET["page"]=="liens")
$page="liens.php";
else if($_GET["page"]=="chiots")
$page="chiots.php";
else if($_GET["page"]=="reservations")
$page="reservations.php";
else if($_GET["page"]=="elevage")
$page="elevage.php";
else
$page="error.php";
}
echo '<a href="?page=main">Accueil</a>
<ul>
<li>
<a href="?page=elevage">Notre élevage</a>
</li>
<li>
<a href="?page=allemand">Braque Allemand</a>
</li>
<li>
<a href="?page=weimar">Braque Weimar</a>
</li>
<li>
<a href="?page=males">Nos mâles</a>
</li>
<li>
<a href="?page=femelles">Nos femelles</a>
</li>
<li>
<a href="?page=chiots">Nos Chiots</a>
</li>
<li>
<a href="?page=photos">Albums photos</a>
</li>
<li>
<a href="?page=contact">Contact</a>
</li>
<li>
<a href="?page=reservations">Réservations</a>
</li>
<li>
<a href="?page=liens">Liens</a>
</li>
</ul>
</div>
<!--fin menu.php';


?>
<body>
<div id="header">
<?php include("./resources/includes/header.php"); ?>
</div>

<div id="menu">
<?php include("./resources/includes/menu.php");?>
</div>

<div id="content">
<?php include("./pages/$page"); ?>
</div>

<div id="footer">
<?php include("./resources/includes/footer.php"); ?>
</div>
</body>
</html>
Messages postés
24
Date d'inscription
mardi 6 avril 2010
Statut
Membre
Dernière intervention
1 juin 2011

Salut les balises <html> et <body> y sont déjà , sinon toute ma page n'aurai pas marchée ;)
ma remarque ne portait pas la balise <HTML> mais sur le code html que j'ai inclu dans le php.

Tu as essayé ce que j'ai posté ?
Messages postés
24
Date d'inscription
mardi 6 avril 2010
Statut
Membre
Dernière intervention
1 juin 2011

ah désolé j'avais mal compris. J'ai éssayé ton post il fonctionne, et j'ai modifié mon index comme t'as fait et ça ne change rien c'est toujours la main.php qui est appelé. Je te post tout, peux-tu jeter un coup d'oeil afin de me dire s'il y a d'éventuelles erreurs. Merci d'avance
<?php
/*
* page index
*/
session_start();
require_once("resources/includes/dbChien.class.php");
$debug= 1; // 0 (release default) : display only bdd error msg
// 1 : display extended bdd error msg
// 2 : 1+ show bdd response and bdd query
$dbChien = new DbChien($debug);
include("resources/includes/constants.php");

$page="main.php";
if(isset($_GET["page"])){
if($_GET["page"]=="main")
$page="main.php";
else if($_GET["page"]=="contact")
$page="contact.php";
else if($_GET["page"]=="photos")
$page="photos.php";
else if($_GET["page"]=="allemand")
$page="allemand.php";
else if($_GET["page"]=="weimar")
$page="weimar.php";
else if($_GET["page"]=="males")
$page="males.php";
else if($_GET["page"]=="femelles")
$page="femelles.php";
else if($_GET["page"]=="liens")
$page="liens.php";
else if($_GET["page"]=="chiots")
$page="chiots.php";
else if($_GET["page"]=="reservations")
$page="reservations.php";
else if($_GET["page"]=="elevage")
$page="elevage.php";
else
$page="error.php";
}

echo '
<div id="decoMenu">
<img src="./resources/braqueDecoMenu.png" alt="deco" />
</div>

<div id="menuliens">
<h1><img src="./resources/puce.jpg" alt="puce" class="puce" /><a href="?page=main">Accueil</a></h1>
<ul>
<li>
<h1><img src="./resources/puce.jpg" alt="puce" class="puce" /><a href="?page=elevage">Notre élevage</a></h1>
</li>
<li>
<h1><img src="./resources/puce.jpg" alt="puce" class="puce" /><a href="?page=allemand">Braque Allemand</a> </h1>
</li>
<li>
<h1><img src="./resources/puce.jpg" alt="puce" class="puce" /><a href="?page=weimar">Braque Weimar</a></h1>
</li>
<li>
<h1><img src="./resources/puce.jpg" alt="puce" class="puce" /><a href="?page=males">Nos mâles</a></h1>
</li>
<li>
<h1><img src="./resources/puce.jpg" alt="puce" class="puce" /><a href="?page=femelles">Nos femelles</a></h1>
</li>
<li>
<h1><img src="./resources/puce.jpg" alt="puce" class="puce" /><a href="?page=chiots">Nos Chiots</a></h1>
</li>
<li>
<h1><img src="./resources/puce.jpg" alt="puce" class="puce" /><a href="?page=photos">Albums photos</a></h1>
</li>
<li>
<h1><img src="./resources/puce.jpg" alt="puce" class="puce" /><a href="?page=contact">Contact</a></h1>
</li>
<li>
<h1><img src="./resources/puce.jpg" alt="puce" class="puce" /><a href="?page=reservations">Réservations</a> </h1>
</li>
<li>
<h1><img src="./resources/puce.jpg" alt="puce" class="puce" /><a href="?page=liens">Liens</a></h1>
</li>
</ul>
</div>';


?>

<!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>
<?php
if($page="main.php")
echo MAIN_TITLE ;
else if($page="photos.php")
echo MAIN_TITLE." | Album Photos";
else if($page="elevage.php")
echo MAIN_TITLE." | Notre élevage";
else if($page="contact.php")
echo MAIN_TITLE."| Nous Contacter";
else if($page="braqueAllemand.php")
echo MAIN_TITLE." | Braque Allemand";
else if($page="Weimar.php")
echo MAIN_TITLE." | Braque de Weimar";
else if($page="males.php")
echo MAIN_TITLE." | nos mâles";
else if($page="femelles.php")
echo MAIN_TITLE." | nos femelles";
else if($page="chiots.php")
echo MAIN_TITLE." | nos chiots";
else if($page="liens.php")
echo MAIN_TITLE." | liens utiles";
else if($page="reservations.php")
echo MAIN_TITLE. " | Réservations";

else
echo MAIN_TITLE;
?>
</title>
<link href="./css/style.css" rel="stylesheet" media="screen" type="text/css" />
<script type="text/javascript" src="./javascript/script.js"></script>
<script type="text/javascript" src="resources/jquery-1.4.3.min.js"></script>
</head>

<body>
<div id="header">
<?php include("./resources/includes/header.php"); ?>
</div>


<div id="content">
<?php include("./pages/$page"); ?>
</div>
<div id="menu">
<?php include("./resources/includes/menu.php");?>
</div>
<div id="footer">
<?php include("./resources/includes/footer.php"); ?>
</div>


</body>
</html>
Messages postés
24
Date d'inscription
mardi 6 avril 2010
Statut
Membre
Dernière intervention
1 juin 2011

merci beaucoup, ça marche correctement là.
Salut, tu verra que j'ai pas mal bousculé ton code :
j'ai essayé, en creabt le tableau $ressource de simplifié tes conditionnelles et du coup la génération se fait par parcours du tableau et non plus ligne à ligne. Ce sera beaucoup plus simple si tu veux modifier ton menu.

Comme tu te sert d'une session, j'ai mis le nom de la page et le titre dans une variable de session.

Si tu as un soucis de compréhension n'hésites pas.

A+

<?php
include("resources/includes/constants.php");
$ressource['main']['page'] = "main.php";
$ressource['main']['titre'] = MAIN_TITLE;
$ressource['photos']['page'] = "photos.php";
$ressource['photos']['titre'] = MAIN_TITLE." | Album Photos" ;
$ressource['elevage']['page'] = "elevage.php";
$ressource['elevage']['titre'] = MAIN_TITLE." | Notre élevage";
$ressource['contact']['page'] = "contact.php";
$ressource['contact']['titre'] = MAIN_TITLE."| Nous Contacter";
$ressource['braqueAllemand']['page'] = "allemand.php";
$ressource['braqueAllemand']['titre'] = MAIN_TITLE." | Braque Allemand";
$ressource['Weimar']['page'] = "weimar.php";
$ressource['Weimar']['titre'] = MAIN_TITLE." | Braque de Weimar";
$ressource['males']['page'] = "males.php";
$ressource['males']['titre'] = MAIN_TITLE." | nos màles";
$ressource['femelles']['page'] = "femelles.php";
$ressource['femelles']['titre'] = MAIN_TITLE." | nos femelles";
$ressource['chiots']['page'] = "chiots.php";
$ressource['chiots']['titre'] = MAIN_TITLE." | nos chiots";
$ressource['liens']['page'] = "liens.php";
$ressource['liens']['titre'] = MAIN_TITLE." | liens utiles";
$ressource['reservations']['page'] = "reservations.php";
$ressource['reservations']['titre'] = MAIN_TITLE. " | Réservations";

function mapage($ressource){
$_SESSION['page']="main.php";
$_SESSION['titre']=MAIN_TITLE ;
if(isset($_GET["page"])){
$_SESSION['page']=$ressource[$_GET["page"]]['page'];
$_SESSION['titre']=$ressource[$_GET["page"]]['titre'];
}
}
/*
* page index
*/
session_start();
mapage($ressource);

require_once("resources/includes/dbChien.class.php");
$debug= 1; // 0 (release default) : display only bdd error msg
// 1 : display extended bdd error msg
// 2 : 1+ show bdd response and bdd query
$dbChien = new DbChien($debug);


?>

<!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>
<?php
echo $_SESSION['titre'];
?>
</title>
<link href="./css/style.css" rel="stylesheet" media="screen" type="text/css" />
<script type="text/javascript" src="./javascript/script.js"></script>
<script type="text/javascript" src="resources/jquery-1.4.3.min.js"></script>
</head>

<body>
<div id="decoMenu">
<img src="./resources/braqueDecoMenu.png" alt="deco" />
</div>
<div id="menuliens">
<h1><img src="./resources/puce.jpg" alt="puce" class="puce" /><a href="?page=main">Accueil</a></h1>
<ul>
<?php
foreach ($ressource as $key => $val) {
echo '<li>
<h1><img src="./resources/puce.jpg" alt="puce" class="puce" /><a href="?page='.$key.'">'.$val['titre'].'</a></h1>
</li> ';
}
echo '</ul>';
?>

<div id="header">
<?php include("./resources/includes/header.php"); ?>
</div>


<div id="content">
<?php include("./pages/".$_SESSION['page']); ?>
</div>
<div id="menu">
<?php include("./resources/includes/menu.php");?>
</div>
<div id="footer">
<?php include("./resources/includes/footer.php"); ?>
</div>


</body>
</html>