Conditions avec images (if, elseif,else)

Petit nouveau ! | 6 Messages

03 juil. 2008, 12:37

Bonjour, cela fait quelque jours que je demande à mon ami google mais rien. Aucune réponse enfin si quelques unes mais pas vraiment pertinente !
J'ai fais aussi des recherches sur le forum et cela n'aboutit pas. :roll:

Voila j'aimerai avec l'aide de Php insérer une images en fonction de la page qui est visitée !
Je m'explique plus clairement :
Si je suis sur la page 1, je veux que dans mon header, php reconnaisse la page sur laquelle je suis et affiche en contre partie une image.
Si je suis sur la page 2, il affiche une autre image.

La structure de mon site :
J'<include> ou <require> un header que je gref a une page. Donc je pense que php doit avoir sa place dans le header que j' appel par la fonction include ou require.
			<?php
$accueil = 'monsite/accueil.php';
$videos = 'monsite/videos.php';
$photos = 'monsite/photos.php';
$informations = 'monsite/informations.php';
$partenaires = 'monsite/partenaires.php';
$url1 = 'monsite/accueil.php';
$url2 = 'monsite/videos.php';
$url3 = 'monsite/photos.php';
$url4 = 'monsite/informations.php';
$url5 = 'monsite/partenaires.php';

			if($url1 == $accueil ) //Si  $accueil est strictement égal l'url on affiche le echo qui suit
			{
			echo '<img src="images/topaccueil.png" alt="">';
			
			}
				elseif ($url2 == $videos) //Sinon on affiche un autre echo en fonction d'une autre page
				{echo '<img src="images/topvideos.png" alt="">';
				}
						elseif ($url3 == $photos)
						{echo '<img src="images/topphotos.png" alt="">';
						}
								elseif ($url4 == $informations)
								{echo '<img src="images/topinformations.png" alt="">';
								}
										elseif ($url5 == $partenaires)
										{echo '<img src="images/toppartenaires.png" alt="">';
										}
										
?>
Merci d'avance, j'espère respecté la charte du forum !

Mammouth du PHP | 1668 Messages

03 juil. 2008, 12:44

Bonjour je serais toi, je tenterais un switch :
switch($PHP_self){
  case $p1: $image="01.png";
  case $p2: $image="02.png";
  case $p3: $image="03.png";
  case $p4: $image="04.png";
  case $p5: $image="05.png";
// etc.
}
?>
<img src="img/<?php echo $image; ?>" />
"À ceux qui poursuivent leurs rêves et se spécialisent dans l'impossible" Joseph Kong

10 ans de PHP, déjà.

"moi jtrouve que katagoto il déchire!" Nagol

Petit nouveau ! | 6 Messages

03 juil. 2008, 12:55

Pourrais tu m'expliquer plus clairement la fonction switch ?
Car mon site a le même header pour chaque pages, la seul chose que je veux c'est que si je suis sur tels page le header est appelé et qu'il reconnaisse la page que je visite et m'insère une image.

Mammouth du PHP | 1668 Messages

03 juil. 2008, 13:19

En gros, un switch est un abréviation pour tester une variable ($PHP_self) $p1, $p2... étant ses valeurs possible, et $image... l'action à effectuer en conséquence, voilà en gros :)
"À ceux qui poursuivent leurs rêves et se spécialisent dans l'impossible" Joseph Kong

10 ans de PHP, déjà.

"moi jtrouve que katagoto il déchire!" Nagol

Petit nouveau ! | 6 Messages

03 juil. 2008, 13:41

Merci pour l'explication XD :) .

Mais mon code n'affiche rien ! :( (bad)
			<?php
$accueil = 'www.monsite.com/accueil.php';
$videos = 'www.monsite.com/videos.php';
$photos = 'www.monsite.com/photos.php';
$informations = 'www.monsite.com/informations.php';
$partenaires = 'www.monsite.com/partenaires.php';

switch($PHP_self){
  case $accueil == $image="images/topaccueil.png";
  case $videos == $image="images/topvideos.png";
  case $photos == $image="images/topphotos.png";
  case $informations == $image="images/topinformations.png";
  case $partenaires == $image="images/toppartenaires.png";
// etc.
}
?>
<img src="<?php echo $image; ?>" alt="" />
Enfin si avec ce code la, seul la dernière case $partenaires est affichée. Les autres ne sont prise en compte. Donc je me retrouve avec la même image de partout !

Mammouth du PHP | 1668 Messages

03 juil. 2008, 13:49

Renplace des == par deux :
ou alors essaie ça :
switch ($note) { // on indique sur quelle variable on travaille

case 0: // dans le cas où $note vaut 0
echo "Tu es vraiment un gros Zér0 !!!";
break;

case 5: // dans le cas où $note vaut 5
echo "Tu es très mauvais";
break;

case 7: // dans le cas où $note vaut 7
echo "Tu es mauvais";
break;

case 10: // etc etc
echo "Tu as pile poil la moyenne, c'est un peu juste...";
break;

case 12:
echo "Tu es assez bon";
break;

case 16:
echo "Tu te débrouilles très bien !";
break;

case 20:
echo "Excellent travail, c'est parfait !";
break;

default:
echo "Désolé, je n'ai pas de message à afficher pour cette note";

}
C'est un exemple là ^^
"À ceux qui poursuivent leurs rêves et se spécialisent dans l'impossible" Joseph Kong

10 ans de PHP, déjà.

"moi jtrouve que katagoto il déchire!" Nagol

Petit nouveau ! | 6 Messages

03 juil. 2008, 13:54

Avec les : je n'ai rien qui s'affiche j'essaye la deuxième solution.

Pour la deuxième solution j'ai cela :
			<?php
$accueil = 'www.monsite.com/accueil.php';
$videos = 'www.monsite.com/videos.php';
$photos = 'www.monsite.com/photos.php';
$informations = 'www.monsite.com/informations.php';
$partenaires = 'www.monsite.com/partenaires.php';
// pages

$image1= "images/topaccueil.png";
$image2="images/topvideos.png";
$image3="images/topphotos.png";
$image4="images/topinformations.png";
$image5="images/toppartenaires.png";
// images

switch ($accueil) { // on indique sur quelle variable on travaille

case $accueil: // dans le cas où $accueil vaut $acceuil
echo $image1;
break;

case $videos: // dans le cas où $accueil vaut $videos
echo $image2;
break;

case $photos: // dans le cas où $accueil vaut $photos
echo $image3;
break;

case $informations: // dans le cas où $accueil vaut $informations
echo $image4;
break;

case $partenaires: // dans le cas où $accueil vaut $partenaires
echo $image5;
break;

} 
?>
Au lieu de m'afficher une image il m'affiche le teste correspondant à la variable sans prendre en compte les autres critère j'ai du faire une faute voir des fautes.

Mammouth du PHP | 1668 Messages

03 juil. 2008, 14:55

bah tu fais echo, donc oui ça affiche le texte correspondant :roll:
"À ceux qui poursuivent leurs rêves et se spécialisent dans l'impossible" Joseph Kong

10 ans de PHP, déjà.

"moi jtrouve que katagoto il déchire!" Nagol

Petit nouveau ! | 6 Messages

03 juil. 2008, 15:24

J'ai encore essayé autre chose !
<?php
$accueil = 'www.monsite.com/accueil.php';
$videos = 'www.monsite.com/videos.php';
$photos = 'www.monsite.com/photos.php';
$informations = 'www.monsite.com/informations.php';
$partenaires = 'www.monsite.com/partenaires.php';

switch($_SERVER[PHP_SELF] ){
  case $accueil: $image="images/topaccueil.png";
  case $videos: $image="images/topvideos.png";
  case $photos: $image="images/topphotos.png";
  case $informations: $image="images/topinformations.png";
  case $partenaires: $image="images/toppartenaires.png";
// etc.
}
?>
<img src="<?php echo $image; ?>" alt="" />
Rien ne s'affiche !
Sur Firefox je ne vois pas l'image sur IE je vois le petit carré avec une croix rouge signe d'emplacement d'une image!

Le problème d'affichage vient de la variable $image.
Comment fait on pour afficher une image avec une variable ?
Ensuite viendra le problème de reconnaissance des pages pour afficher tels ou tels variable ...

Mammouth du PHP | 1668 Messages

03 juil. 2008, 15:32

<?php 
$accueil = 'accueil.php'; 
$videos = 'videos.php'; 
$photos = 'photos.php'; 
$informations = 'informations.php'; 
$partenaires = 'partenaires.php'; 

switch($_SERVER["PHP_SELF"] ){ 
  case $accueil: $image="images/topaccueil.png"; 
  case $videos: $image="images/topvideos.png"; 
  case $photos: $image="images/topphotos.png"; 
  case $informations: $image="images/topinformations.png"; 
  case $partenaires: $image="images/toppartenaires.png"; 
// etc. 
} 
?> 
<img src="<?php echo $image; ?>" alt="" /> 
Essaie avec ça...

Explication, PHP_SELF n'est pas une constante mais une clef dans $_SERVER, donc on l'entour de guillemets ; en suite, PHP_self retourne le nom du script et pas le liens absolu.
"À ceux qui poursuivent leurs rêves et se spécialisent dans l'impossible" Joseph Kong

10 ans de PHP, déjà.

"moi jtrouve que katagoto il déchire!" Nagol

Petit nouveau ! | 6 Messages

03 juil. 2008, 16:09

Allé encore une fois :p

Je suis revenu un code plus basic ! On peut pas faire plus simple.
<?php
$accueil = 'www.monsite.com/accueil.php';
$videos = 'www.monsite.com/videos.php';
$photos = 'www.monsite.com/photos.php';
$informations = 'www.monsite.com/informations.php';
$partenaires = 'www.monsite.com/partenaires.php';
$url1 = 'www.monsite.com/accueil.php';
$url2 = 'www.monsite.com/videos.php';
$url3 = 'www.monsite.com/photos.php';
$url4 = 'www.monsite.com/informations.php';
$url5 = 'www.monsite.com/partenaires.php'; 



            if($url1 == $accueil ) //Si  $accueil est strictement égal l'url on affiche le echo qui suit
            {
            echo '<img src="images/topaccueil.png" alt="">';            
            }
                if ($url2 == $videos) //Sinon on affiche un autre echo en fonction d'une autre page
                {echo '<img src="images/topvideos.png" alt="">';
                }
                        if ($url3 == $photos)
                        {echo '<img src="images/topphotos.png" alt="">';
                        }
                                if ($url4 == $informations)
                                {echo '<img src="images/topinformations.png" alt="">';
                                }
                                        if ($url5 == $partenaires)
                                        {echo '<img src="images/toppartenaires.png" alt="">';
                                        }
                                        
?> 
Concéquance d'un tels code :

Vu que tout les if sont juste toute les images s'affiche !
Le problème reste le même comment comparé l'url ! car si je remplace et met un code de ce type :


<?php

$accueil = 'www.monsite.com/accueil.php';
$videos = 'www.monsite.com/videos.php';
$photos = 'www.monsite.com/photos.php';
$informations = 'www.monsite.com/informations.php';
$partenaires = 'www.monsite.com/partenaires.php';
$url1 = 'www.monsite.com/accueil.php';



            if($url1 == $accueil ) //Si  $accueil est strictement égal l'url on affiche le echo qui suit
            {
            echo '<img src="images/topaccueil.png" alt="">';            
            }
                if ($url1 == $videos) //Sinon on affiche un autre echo en fonction d'une autre page
                {echo '<img src="images/topvideos.png" alt="">';
                }
                        if ($url1 == $photos)
                        {echo '<img src="images/topphotos.png" alt="">';
                        }
                                if ($url1 == $informations)
                                {echo '<img src="images/topinformations.png" alt="">';
                                }
                                        if ($url1 == $partenaires)
                                        {echo '<img src="images/toppartenaires.png" alt="">';
                                        }
                                        
?> 
La je n'ai que la première image (accueil.png) sur tout les pages !



RESOLU
<?php
$url = $_SERVER['REQUEST_URI'];
$accueil = '/accueil.php';
$videos = '/videos.php';
$photos = '/photos.php';
$informations = '/informations.php';
$partenaires = '/partenaires.php';




 if($url == $accueil ) //Si  $accueil est strictement égal l'url on affiche le echo qui suit
            {
            echo '<img src="images/topaccueil.png" alt="">';            
            }
                if ($url == $videos) //Sinon on affiche un autre echo en fonction d'une autre page
                {echo '<img src="images/topvideos.png" alt="">';
                }
                        if ($url == $photos)
                        {echo '<img src="images/topphotos.png" alt="">';
                        }
                                if ($url == $informations)
                                {echo '<img src="images/topinformations.png" alt="">';
                                }
                                        if ($url == $partenaires)
                                        {echo '<img src="images/toppartenaires.png" alt="">';
                                        } 
                                        
?> 
Voilà j'ai fini par trouver ! :)