Page 1 sur 1

Changement image dans header

Posté : 11 avr. 2011, 15:35
par Luberon
Bonjour,

Je désire changer l'image du header en fonction de la page

Ds le header j'ai mis pour l'image :
src="images/<?php echo $image; ?>.jpg"

et dans la page j'ai mis avant le code html
<?php
include('header.php');
$image='mon_image';
?>

mais il ne prend pas ma variable $image

merci pour votre aide

Re: Changement image dans header

Posté : 11 avr. 2011, 15:43
par macgawel
Bonjour.

include(fichier.php) revient (à peu de choses près) à faire un copier-coller de fichier.php.

Du coup,
<?php
include('header.php');
$image='mon_image';
?>
Revient à peu près à :
<?php
src="images/<?php echo $image; ?>.jpg"
$image='mon_image';
?>
tu ne vois pas le problème ? :roll:

Re: Changement image dans header

Posté : 11 avr. 2011, 15:49
par Luberon
Non, je vois pas tout à fait

ds la page, tu mets

<?php
include('header.php');
$image='mon_image';
?>
ça ok

ds le header, tu mets

<?php
src="images/<?php echo $image; ?>.jpg"
$image='mon_image';
?>

.....
code html
...
src="images/<?php echo $image; ?>.jpg"

c'est cela ?

j'ai bien compris ,

Re: Changement image dans header

Posté : 11 avr. 2011, 15:53
par telnes
hello

tu demande a php de faire unb echo d'une variable qui est définie après :non:

++

Re: Changement image dans header

Posté : 11 avr. 2011, 16:09
par Luberon
ok, en effet

ben je vois pas comment

Re: Changement image dans header

Posté : 11 avr. 2011, 16:16
par telnes
hello

une bonne pratique consiste a faire la partie php avant la partie "html"

<?php
// ici le code php
$image='mon_image';


// ici la partie affichage
src="images/<?php echo $image; ?>.jpg"



?>


++

Re: Changement image dans header

Posté : 11 avr. 2011, 16:25
par Luberon
ça ok
une bonne pratique consiste a faire la partie php avant la partie "html"

Le problème c'est que le header est séparé de la page
j'ai bien essayé
avant le HTML du header
<?php
if(PAGE == 'accueil') echo '$image1';
if(PAGE == 'page2') echo '$image2';
....
?>

et dans la page d'accueil avant le html
<?php
include('header.php');
define("PAGE","accueil");
$image1='mon_image1';
?>


Mais ds le code html du header, je vois pas comment appeler l'image
src="images/<?php echo $image; ?>.jpg"

Re: Changement image dans header

Posté : 11 avr. 2011, 16:28
par macgawel
c'est cela ?
Non.

quand dans ta page tu mets
<?php
include('header.php');
$image='mon_image';
?>
Quand php lit et interprète ton script, il voit un include => il va chercher le contenu de header.php et le colle à la place de l'include.

Au final, ta page revient à ça :
<?php
// ... Le début du fichier header
src="images/<?php echo $image; ?>.jpg" // la ligne du header qui te pose problème
// ... La fin du fichier header
$image='mon_image';
?>
Comme le dit telnes, tu fais ton echo $image avant de donner une valeur à $image. Forcément, ça ne fonctionne pas...
Il faut faire l'inverse :
Donner une valeur à $image, puis faire le echo.


PS : ce serait bien d'utiliser les balises qui vont bien pour ton code (bouton PHP) :wink:

Re: Changement image dans header

Posté : 11 avr. 2011, 17:16
par Luberon
:(
j'ai beau essayé ... marche pas

Re: Changement image dans header

Posté : 11 avr. 2011, 17:54
par Luberon
J'ai trouvé messieurs

Ds le header, avant le code html

Code : Tout sélectionner

<?php if(PAGE == 'accueil'); $image='mon-image1'; if(PAGE == 'page2'); $image='mon-image2'; .... ajouter des pages .... ?>
dans le header, ds le code html, pour l'appel de l'image

Code : Tout sélectionner

<img border="0" src="images/<?php echo $image; ?>.jpg" ....>

Dans la page (exemple pour index), avant le code html

Code : Tout sélectionner

<?php $title='le titre'; $metaDescription='la description'; include('header.php'); define("PAGE","accueil"); ?>
Merci de m'avoir boosté !

Re: Changement image dans header

Posté : 12 avr. 2011, 10:53
par macgawel
Et ça marche ?

non, parce que là tu fais toujours la même erreur : tu utilises une variable avant de lui donner une valeur...

Re: Changement image dans header

Posté : 12 avr. 2011, 11:09
par Luberon
Bonjour,

effectivement, avec mon code, l'image restait bloquée sur 'mon-image2'
j'ai utilisé la fonction switch pour finir (c'est un ami qui me l'a suggéré ! ... ne croyez pas) :

Code : Tout sélectionner

<?php switch (PAGE) { case 'page1' : $image='mon-image1'; break; case 'page2' : $image='mon-image2'; break; default : $image='mon-image1'; }; ?>
et puis cela ne fonctionnait toujours pas avant de m'apercevoir (dès fois c'est bête !) que ds les pages je faisais appel au header avant de définir la page, en corrigeant, cela fonctionne !

Code : Tout sélectionner

<?php $title='.....'; $metaDescription='.............'; define("PAGE","page1"); include('header.php'); ?>
Voilà, pour vous évitez une nuit blanche
:)