Changement image dans header

Petit nouveau ! | 7 Messages

11 avr. 2011, 15:35

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

Mammouth du PHP | 672 Messages

11 avr. 2011, 15:43

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:

Petit nouveau ! | 7 Messages

11 avr. 2011, 15:49

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 ,

Eléphant du PHP | 422 Messages

11 avr. 2011, 15:53

hello

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

++
toujours faire une recherche sur http://www.php.net et/ou sur http://www.google.fr :)
utiliser http://ideone.com/ pour vos codes :)

Petit nouveau ! | 7 Messages

11 avr. 2011, 16:09

ok, en effet

ben je vois pas comment

Eléphant du PHP | 422 Messages

11 avr. 2011, 16:16

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"



?>


++
toujours faire une recherche sur http://www.php.net et/ou sur http://www.google.fr :)
utiliser http://ideone.com/ pour vos codes :)

Petit nouveau ! | 7 Messages

11 avr. 2011, 16:25

ç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"

Mammouth du PHP | 672 Messages

11 avr. 2011, 16:28

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:

Petit nouveau ! | 7 Messages

11 avr. 2011, 17:16

:(
j'ai beau essayé ... marche pas

Petit nouveau ! | 7 Messages

11 avr. 2011, 17:54

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é !

Mammouth du PHP | 672 Messages

12 avr. 2011, 10:53

Et ça marche ?

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

Petit nouveau ! | 7 Messages

12 avr. 2011, 11:09

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
:)