par
Zurg » 16 nov. 2006, 01:10
Bonsoir à tous !
Je cherche à faire des titres de pages dynamiques. En fait, j'utilise les pseudo-frames sur une page qui s'appelle sommaire.php .
Elle dispose entre autres, d'un menu horizontal, d'une page centre.php, et d'un footer.
Voici à quoi elle ressemble :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>..:: Sommaire ::..</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="style_2.css" rel="stylesheet" type="text/css"/>
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_preloadImages() { //v3.0
var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}
//-->
</script>
</head>
<body>
<div id="conteneur">
<h1 id="header"><a href="index.php" "><span>Blabla
</span></a></h1>
<?php
if (!isset($_GET['pg']))
{
$_GET['pg'] = "Sommaire";
}
$page = $_GET['pg'];
$pages_possibles = array(
'Sommaire' => 'som1.php',
'Photos' => 'album.php',
'Bas_Reliefs' => 'bas_rel.php',
);
for ($i=0; $i<count($pages_possibles); $i++)
{
if ($page == $pages_possibles)
{
$page_aff = $page;
break;
}
else
{
$i++;
$page_aff = "Sommaire";
}
}
if ($page != "Sommaire")
{
?>
<ul id="menu">
<li><a href="sommaire.php?pg=Photos">Photos</a></li>
<li><a href="sommaire.php?pg=Lieu">Le lieu</a></li>
<li><a href="sommaire.php?pg=Cambodge">Cambodge</a></li>
<li><a href="esommaire.php?pg=Bas_Relief">Bas relief</a></li>
<li><a href="contact.php">Contact</a></li>
</ul><br>
<?php } ?>
<div id="contenu">
<h2><?php
echo $page_aff."...";?></h2>
<?php include("centre.php");?>
</div>
<p id="footer"><?php include ("footer.php");?></p>
</div>
</body>
</html>
Il y a 2 choses :
1/ En fonction d'une variable passée en url, le titre doit être modifié
2/ Si la page appelée correspond à la page du sommaire en lui même, il ne faut pas afficher le menu horizontal.
Or, pour l'instant, si le sommaire est appelé normalement, pas de problème, le menu disparait, et le titre est bon, mais si on met un nom bidon dans l'url, genre ?pg=blabla , là, ça ne marche pas. La page centre.php redirige vers les sommaire, et le fichier est bien inclu, mais le menu s'affiche quand même.
=> Où est l'erreur ?
De même que lorsqu'une page autorisée est appelée, le titre reste "Sommaire"
=> Pourquoi ?
Voici la page centre.php pour mieux comprendre
<?php
// config
$pages_possibles = array(
'Sommaire' => 'som1.php',
'Photos' => 'album.php',
'Bas_Reliefs' => 'bas_rel.php',
);
$page_par_defaut = 'Sommaire';
// récupération de la page à inclure en fonction de ?pg=...
$code_page = isset($_GET['pg']) ? $_GET['pg'] : $page_par_defaut;
$page = isset($pages_possibles[$code_page]) ? $pages_possibles[$code_page] : $pages_possibles[$page_par_defaut];
// inclusion effective, avec les deux lignes précédentes on s'est assuré
// que le fichier faisait partie de la liste des fichiers qu'on a décidé qu'on
// pouvait inclure (le cas échéant, on "tombe" sur la page par défaut)
include $page;
?>
Voilà, en gros j'espère avoir assez bien exprimé mon problème...
Merci !
Bonsoir à tous !
Je cherche à faire des titres de pages dynamiques. En fait, j'utilise les pseudo-frames sur une page qui s'appelle sommaire.php .
Elle dispose entre autres, d'un menu horizontal, d'une page centre.php, et d'un footer.
Voici à quoi elle ressemble :
[php]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>..:: Sommaire ::..</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="style_2.css" rel="stylesheet" type="text/css"/>
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_preloadImages() { //v3.0
var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}
//-->
</script>
</head>
<body>
<div id="conteneur">
<h1 id="header"><a href="index.php" "><span>Blabla
</span></a></h1>
<?php
if (!isset($_GET['pg']))
{
$_GET['pg'] = "Sommaire";
}
$page = $_GET['pg'];
$pages_possibles = array(
'Sommaire' => 'som1.php',
'Photos' => 'album.php',
'Bas_Reliefs' => 'bas_rel.php',
);
for ($i=0; $i<count($pages_possibles); $i++)
{
if ($page == $pages_possibles)
{
$page_aff = $page;
break;
}
else
{
$i++;
$page_aff = "Sommaire";
}
}
if ($page != "Sommaire")
{
?>
<ul id="menu">
<li><a href="sommaire.php?pg=Photos">Photos</a></li>
<li><a href="sommaire.php?pg=Lieu">Le lieu</a></li>
<li><a href="sommaire.php?pg=Cambodge">Cambodge</a></li>
<li><a href="esommaire.php?pg=Bas_Relief">Bas relief</a></li>
<li><a href="contact.php">Contact</a></li>
</ul><br>
<?php } ?>
<div id="contenu">
<h2><?php
echo $page_aff."...";?></h2>
<?php include("centre.php");?>
</div>
<p id="footer"><?php include ("footer.php");?></p>
</div>
</body>
</html>
[/php]
Il y a 2 choses :
1/ En fonction d'une variable passée en url, le titre doit être modifié
2/ Si la page appelée correspond à la page du sommaire en lui même, il ne faut pas afficher le menu horizontal.
Or, pour l'instant, si le sommaire est appelé normalement, pas de problème, le menu disparait, et le titre est bon, mais si on met un nom bidon dans l'url, genre ?pg=blabla , là, ça ne marche pas. La page centre.php redirige vers les sommaire, et le fichier est bien inclu, mais le menu s'affiche quand même.
=> Où est l'erreur ?
De même que lorsqu'une page autorisée est appelée, le titre reste "Sommaire"
=> Pourquoi ?
Voici la page centre.php pour mieux comprendre
[php]<?php
// config
$pages_possibles = array(
'Sommaire' => 'som1.php',
'Photos' => 'album.php',
'Bas_Reliefs' => 'bas_rel.php',
);
$page_par_defaut = 'Sommaire';
// récupération de la page à inclure en fonction de ?pg=...
$code_page = isset($_GET['pg']) ? $_GET['pg'] : $page_par_defaut;
$page = isset($pages_possibles[$code_page]) ? $pages_possibles[$code_page] : $pages_possibles[$page_par_defaut];
// inclusion effective, avec les deux lignes précédentes on s'est assuré
// que le fichier faisait partie de la liste des fichiers qu'on a décidé qu'on
// pouvait inclure (le cas échéant, on "tombe" sur la page par défaut)
include $page;
?>[/php]
Voilà, en gros j'espère avoir assez bien exprimé mon problème...
Merci !