Téléchargement
illégal
Posez votre question Signaler

Bug d'um menu php/mysql [Résolu]

Tony Rocky Horror 10Messages postés 6 avril 2010Date d'inscription 1 juin 2011Dernière intervention - Dernière réponse le 20 nov. 2010 à 21:24
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.
Lire la suite 

Bug d'um menu php/mysql »

6 réponses
Réponse
+0
moins plus
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>
Jean-Marie - 19 nov. 2010 à 18:29
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é ?
Tony Rocky Horror- 19 nov. 2010 à 20:05
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>
Tony Rocky Horror- 20 nov. 2010 à 21:24
merci beaucoup, ça marche correctement là.
Ajouter un commentaire
Réponse
+0
moins plus
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>
Ajouter un commentaire
Ce document intitulé « bug d'um menu php/mysql » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?