extension d'une image

Eléphant du PHP | 119 Messages

30 mai 2006, 13:52

bonjour,

j'ai un script php qui recupere une image dans un dossier selon le nom de la marque.

mais si j'ai 2 images qui portent le meme nom mais plusieurs extensions il va m'afficher les 2 images et ca je ne veux pas.
ex si une image porte leclerc.jpg et leclerc.png il m'affichera les 2
j'ai essayé un code comme ca mais ca m'affiche rien
<img src="marques/<?php echo ($req['mar_lib']);?> .jpg OR .jpeg OR .gif OR .png" />
le probleme vient de l'extension mais je ne sais pas comment lui dire qu'il faut qu'il ne prenne qu'une image meme si il en trouve 2

j'espere que vous m'avez compris

Merci

Cedric

Eléphant du PHP | 119 Messages

30 mai 2006, 14:01

...

si je met
<img src="marques/<?php echo ($req['mar_lib']);?> .jpg" />
il m'affiche bien la bonne image

mais si je met
<img src="marques/<?php echo ($req['mar_lib']);?> .jpg OR .jpeg OR .gif OR .png" />
il m'affiche rien meme pas une erreur :roll: :roll:

j'espere que le probleme enoncé comme ca vous sera plus clair a comprendre

Cordialement

Avatar du membre
ViPHP
ViPHP | 3008 Messages

30 mai 2006, 14:08

<img src="marques/<?php echo ($req['mar_lib']);?> .jpg OR .jpeg OR .gif OR .png" />
Ne veut rien dire du tout, tu mets des OR dans le code HTML...

Si tu as deux images avec 2 extensions différentes, tu sais laquelle il faut garder ? Quelle extension ?

Mammouth du PHP | 1353 Messages

30 mai 2006, 14:09

A ma connaissance l'HTML n'interprete pas les OR.

Donc dans ta ligne il va aller chercher l'image qui s appelle :

"marques/nom.jpg OR .jpeg OR .gif OR .png"

Donc évidemment il ne va pas la trouver. Il faut que tu gère en php pour que si il en trouve plus qu'une il ne choisisse que la première par exemple.

EDIT: J'ai été devancé :(

Eléphant du PHP | 119 Messages

30 mai 2006, 14:16

merci a vous, j'ai opté pour cette solution
<img src="marques/<?php echo ($req['mar_lib']);?>.jpg" />
		<? OR ?>
		<img src="marques/<?php echo ($req['mar_lib']);?>.jpeg" />
		<? OR ?>
		<img src="marques/<?php echo ($req['mar_lib']);?>.gif" />
		<? OR ?>
		<img src="marques/<?php echo ($req['mar_lib']);?>.png" />
Bonne journée

Mammouth du PHP | 1353 Messages

30 mai 2006, 14:18

euh... je ne suis toujours pas convaincu. Le OR en php ne veut rien dire, il faudrait plutot que tu t orientes vers une forme
if(condition) //alors ceci
else if(condition) //alors cela
etc...

Eléphant du PHP | 119 Messages

30 mai 2006, 14:42

j'ai ecrit ca en php mais il m'affiche pas l'image qui est de type png
<?php
	$repertoire = 'marques/';
	if (isset($_FILES['fichier']))
	{
		//on verifie l'extention
		if ($_FILES['fichier']['type'] == 'image/png')
			{	
				echo '<img src="marques/($req["mar_lib"]).png" />';
			} elseif ($_FILES['fichier']['type'] == 'image/jpg')
				{
					echo '<img src="marques/($req["mar_lib"]).jpg" />';
				} elseif ($_FILES['fichier']['type'] == 'image/jpeg')
					{
						echo '<img src="marques/($req["mar_lib"]).jpeg" />';
					} elseif ($_FILES['fichier']['type'] == 'image/jpeg')
						{
							echo '<img src="marques/($req["mar_lib"]).gif" />';
						}
	}
	?>

Merci  :cry:  :cry: 

Avatar du membre
ViPHP
ViPHP | 3008 Messages

30 mai 2006, 14:49

echo '<img src="marques/'.$req['mar_lib'].'.png" />';
Idem pour le reste.

Mammouth du PHP | 1353 Messages

30 mai 2006, 14:51

Au passage je souligne juste une petite erreur que tu as du faire a cause d un copier coller et qui pourrait etre ennuyeuse :

elseif ($_FILES['fichier']['type'] == 'image/jpeg')
{
echo '<img src="marques/'.$req['mar_lib'].'.gif" />';
}

N'oublie pas de changer en elseif ($_FILES['fichier']['type'] == 'image/gif')
Modifié en dernier par guilt92 le 30 mai 2006, 14:53, modifié 1 fois.

Eléphant du PHP | 119 Messages

30 mai 2006, 14:52

j'ai remis à jour le code
<?php
	$repertoire = 'marques/';
	if (isset($_FILES['fichier']))
	{
		//on verifie l'extention
		if ($_FILES['fichier']['type'] == 'image/png')
			{	
				echo '<img src="marques/'.$req["mar_lib"].'.png" />';
			} elseif ($_FILES['fichier']['type'] == 'image/jpg')
				{
					echo '<img src="marques/'.$req["mar_lib"].'.jpg" />';
				} elseif ($_FILES['fichier']['type'] == 'image/jpeg')
					{
						echo '<img src="marques/'.$req["mar_lib"].'.jpeg" />';
					} elseif ($_FILES['fichier']['type'] == 'image/gif')
						{
							echo '<img src="marques/'.$req["mar_lib"].'.gif" />';
						}
	}
	?>
seulement, il ne m'affiche ni erreur ni image :( :(

merci d'avance ^^

Mammouth du PHP | 1353 Messages

30 mai 2006, 14:55

Que se passe t il si tu fais un echo $req['mar_lib']; avant les if juste pour savoir la valeur ?

Avatar du membre
ViPHP
ViPHP | 3008 Messages

30 mai 2006, 14:55

un
<?php echo $_FILES['fichier']['type'];?>
te donne quoi ?

Eléphant du PHP | 119 Messages

30 mai 2006, 14:55

euh... je crois que je ne lui dit pas ou se trouve l'image.

comment lui dire que l'image se trouve dans le dossier marques/ ????


merci d'avance

Avatar du membre
ViPHP
ViPHP | 3008 Messages

30 mai 2006, 14:57

Heu bé en lui donnant le chemin vers ce dossier tout simplement.

Ta page se trouve à quel niveau par rapport à "marques" ? Si c'est au même niveau ton code est OK logiquement.
Modifié en dernier par charabia le 30 mai 2006, 14:58, modifié 1 fois.

Eléphant du PHP | 119 Messages

30 mai 2006, 14:57

un
echo $req['mar_lib'];
me donne Leclerc car j'ai qu'une entree pour le moment dans ma BDD

mais l'autre me donne rien
echo $_FILES['fichier']['type'];