Titre dynamique

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Titre dynamique

par Devether » 16 nov. 2006, 18:42

Bonjour,
mais le menu s'affiche quand même.
c'est normal!
tu mets : $page = $_GET['pg'];
donc si tu mets un truc bidon, $page ne sera jamais égale à "Sommaire"
puisque ton test de if($page == $pages_possibles) n'affecte pas $page mais $page_aff.

comme $page n'est jamais changé, ton test if ($page != "Sommaire") sera toujours vrai donc ton menu s'affiche.
De même que lorsqu'une page autorisée est appelée, le titre reste "Sommaire"
ton test if($page == $pages_possibles) est faux.
tu incrémentes $i et tu ne t'en sert pas
==> if($page == $pages_possibles[$i])

bye

Titre dynamique

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 !