Bonjour,

J'apprends actuellement le PHP et j'essaye de réaliser un minisite avec une fonction permettant de changer le contenu de la page depuis un menu. Mon code fonctionne bien avec la variable 'nom' de mon tableau, mais je ne parviens pas à afficher l'image et le texte. Voici mon code:

<?php
$saisons = array (
0 => array ('nom' => 'printemps', 'image' => 'printemps.jpg', 'texte' => 'Le printemps (du latin primus, premier, et tempus, temps, cette saison marquant traditionnellement le renouveau dans la nature) est une des quatre saisons des zones tempérées, suivant l\'hiver et précédant l\'été. Cette demi-saison correspond aux mois de mars, avril, mai et juin dans l\'hémisphère nord.'),
1 => array ('nom' => 'été', 'image' => 'ete.jpg', 'texte' => 'L\'été est l\une des quatre saisons des zones tempérées et polaires, traditionnellement perçue comme la plus chaude, soit les mois de juin, juillet et août (voire septembre) dans l\'hémisphère nord.'),
2 => array ('nom' => 'automne', 'image' => 'automne.jpg', 'texte' => 'L\'automne est l\'une des quatre saisons des zones tempérées. Cette saison, qui se situe entre l\'été et l\'hiver, correspond aux mois de septembre, octobre, novembre et décembre dans l\'hémisphère nord.'),
3 => array ('nom' => 'hiver', 'image' => 'hiver.jpg', 'texte' => 'L\'hiver est l\'une des quatres saisons des zones tempérées, traditionnellement perçue comme la plus froide, soit les mois de décembre, janvier, février et mars dans l\'hémisphère nord.')
);

?>

<?php
 
foreach($saisons AS $saison)
{
    echo '<li><a class="menu" title="'.$saison['nom'].'" href="minisite.php?id='.$saison['nom'].
'">'.$saison['nom'].'</a></li>';

}
?>

<?php
foreach($_GET as $id => $saison['nom'])  {

echo '<title>' .$saison['nom'] . '</title>';
echo '<h1>' .$saison['nom'] . '</h1>';
echo '<img src="' .$saison['image'] . '">';
echo '<p>' . $saison['texte'] .'</p>';
}
?>


Merci de m'indiquer où se trouve mon erreur Smiley sweatdrop

Adeline
Bonjour,

il faut que tu modifies cette ligne:
foreach($_GET as $id => $saison['nom'])  {

par ceci :
foreach($saisons as $id => $saison)  {
De plus pour afficher l'image il faut une URL et pas seulement le nom de l'image donc n'oublies pas de remplacer:

echo '<img src="' .$saison['image'] . '">';


par

echo '<img src="../img/' .$saison['image'] . '">';

ou
echo '<img src="http://tonsite.com/img/' .$saison['image'] . '">';


Smiley cligne
Peter-L a écrit :
De plus pour afficher l'image il faut une URL et pas seulement le nom de l'image donc n'oublies pas de remplacer:

echo '&lt;img src=&quot;' .$saison['image'] . '&quot;&gt;';


par

echo '&lt;img src=&quot;../img/' .$saison['image'] . '&quot;&gt;';

ou
echo '&lt;img src=&quot;http://tonsite.com/img/' .$saison['image'] . '&quot;&gt;';


Smiley cligne

Euh, tout dépend où est son image...

Si elle est dans le même répertoire que son code, se limiter à src='hiver.png' est tout à fait correct.
Bonjour,

J'ai le même sujet mais pas le même code.

Le mien c'est :

<?php
$page_titre = 'Mini-site des saisons'; // variable de titre
$texte_accueil ='Bienvenue sur le mini-site consacr&eacute; aux quatre saisons. Utilisez le menu de navigation pour consulter les pages du site.';
$saisons = array (
	'0' => array ('nom' => 'Printemps', 'image' => 'printemps_mini.jpg', 'texte' => 'Le printemps (du latin primus, premier, et tempus, temps, cette saison marquant traditionnellement le
		renouveau dans la nature) est l\'une des quatre saisons des zones temp&eacute;r&eacute;es, suivant l\'hiver et pr&eacute;c&eacute;dant l\'&eacute;t&eacute;. Cette demi-saison correspond aux mois de mars, avril, mai et juin
		dans l\'h&eacute;misph&egrave;re nord.'),
	'1' => array ('nom' => 'Et&eacute;', 'image' => 'ete_mini.jpg', 'texte' => 'L\'&eacute;t&eacute; est l\'une des quatre saisons des zones temp&eacute;r&eacute;es et polaires, traditionnellement perçue
		comme la plus chaude, soit les mois de juin, juillet, août (voire septembre) dans l\'h&eacute;misph&egrave;re nord.'),
	'2' => array ('nom' => 'Automne', 'image' => 'automne_mini.jpg', 'texte' => 'L\'automne est l\'une des quatre saisons des zones temp&eacute;r&eacute;es. Cette saison se situe entre l\'&eacute;t&eacute; et l\'hiver,
		correspond aux mois de septembre, octobre, novembre et d&eacute;cembre dans l\'h&eacute;misph&egrave;re nord.'),
	'3' => array ('nom' => 'Hiver', 'image' => 'hiver_mini.jpg', 'texte' => 'L\'hiver est l\'une des quatre saisons des zones temp&eacute;r&eacute;es, traditionnellement perçue comme la plus froide,
		soit les mois de d&eacute;cembre, janvier, f&eacute;vrier et mars dans l\'h&eacute;misph&egrave;re nord.')
);
?>

<html>
<head>
	<meta charset="iso-8859-1">
</head>
<body>
	<ul>
	<?php
 
		foreach($saisons AS $saison)
		{
			echo '<li><a class="menu" title="'.$saison['nom'].'" href="minisite.php?nom='.$saison['nom'].
		'">'.$saison['nom'].'</a></li>';

		}

	?>
	</ul>
	
	<?php if (isset($_GET["nom"]))
		{	
			$saison['nom'] = $_GET['nom'];
			$saison['image'] = $_GET['nom'];
			$saison['texte'] = $_GET['nom'];
			echo '<title>' . $saison['nom'] . '</title>';
			echo '<h1>' . $saison['nom'] . '</h1>';
			echo '<h2 id="'. $saison['nom']. '">' . $saison['nom'] . '</h2>';
			echo '<img src="' . $saison['image'] .'" />';
			echo '<p>' . $saison['texte'] . '</p>';
		}
		else {
			$page_titre = $_GET["titre"]; 
			$texte_accueil = $_GET["titre"];

			echo '<title>' . $page_titre . '</title>';
			echo '<h1>' . $page_titre . '</h1>';
			echo '<p>' . $texte_accueil . '</p>';
		}?>
</body>
</html>


Mon souci donc c'est que mes images ne s'affichent pas ni mes textes. Et il faudrait aussi que le texte d'accueil soit sur la page à l'ouverture et qu'il disparaisse lorsque l'on clique sur les saisons.

Merci de votre aide !