afficher une image selon l'ip

Eléphanteau du PHP | 16 Messages

14 déc. 2011, 23:18

salut à tous,

je cherche a afficher une image pour tous les visiteurs d'une page SAUF si l'ip est égale à une valeur, dans ce cas là l'image devra être une autre image

j'obtiens une erreur mais je ne trouve pas la solution:
<?php
header("Content-type: image/gif");
$ip = getenv ('REMOTE_ADDR');

if ($ip == "XX.XXX.XXX.XXX") {
	$result = "image1.gif";
}
else {
	$result = "image2.gif";
}
$image = imagecreatefromgif($result);
?>

merci pour vos lumières ;)

ViPHP
xTG
ViPHP | 7331 Messages

15 déc. 2011, 09:15

j'obtiens une erreur
Si tu viens demander de l'aide il serait bon de nous l'indiquer aussi. ;)

Ton erreur vient surement du fait que tu ne transmet rien.
Tu récupères une ressource qu'il faut ensuite afficher.
Regardes l'exemple dans la doc de imagecreatefromgif().

ViPHP
ViPHP | 2577 Messages

15 déc. 2011, 11:52

Pour transmettre l'image, une solution est la fonction readfile()

Sauf raison particulière, il serait mieux de mettre directement la bonne image dans la balise img directement.

Eléphanteau du PHP | 16 Messages

15 déc. 2011, 20:32

merci à tous, j'étais fatigué et je voyais même pas que l'image n'était pas appelée

pour info voici le code final:
<?php
$ip = getenv ('REMOTE_ADDR');


header("Content-type: image/gif");


if ($ip == "XX.XXX.XXX.XXX") {
	$result = "image1.gif";
}
else {
	$result = "image2.gif";
}
$image = imagecreatefromgif($result);

imagegif($image);

?>

ViPHP
xTG
ViPHP | 7331 Messages

15 déc. 2011, 20:35

Libérer la ressource serait bien aussi si tu ne veux pas charger la mémoire du serveur indéfiniment. ;)

Eléphanteau du PHP | 16 Messages

15 déc. 2011, 20:45

quel code rajoutes tu pour ca?

ViPHP
xTG
ViPHP | 7331 Messages

15 déc. 2011, 22:40

imagedestroy() est fait pour libérer la mémoire.
Je vois que tu n'as pas suivi mon conseil et consulté l'exemple de la documentation.
Ou bien tu as la mauvaise habitude de lire en diagonale les documentations. ^^

Eléphanteau du PHP | 16 Messages

15 déc. 2011, 23:11

bah en fait j'ai trouvé mon erreur en rentrant cet après midi....donc je ne me suis pas plongé dans la doc du tout :P

Eléphanteau du PHP | 37 Messages

16 déc. 2011, 14:26

pourquoi tu te fais pas une table sql avec les images qui correspondent à chaque IP..... ?

ViPHP
xTG
ViPHP | 7331 Messages

16 déc. 2011, 14:29

pourquoi tu te fais pas une table sql avec les images qui correspondent à chaque IP..... ?
Une table pour renseigner une seule IP ? :mrgreen:

Eléphanteau du PHP | 37 Messages

16 déc. 2011, 14:37

A oui j'avais mal compris la demande !
je pensais qu'il y avait plusieurs IP.


moi je ferai ça deja pour tester la base :

<?php
$ip = getenv ('REMOTE_ADDR');
$ipAchercher = "XX.XXX.XXX.XXX";
echo '$ipAchercher;      
if ($ip == "XX.XXX.XXX.XXX") {
        $result = "image1.gif";
echo '"image1";
}
else {
 echo '"image2";
}

echo '$ipAchercher; -----> pour vérifier que la variable correspond bien à l'IP voulu
echo '"image1"; -------------> pour vérifier les condition
echo '"image2";

et si ca viens pas de la comme ca tu sais que ca viens de :

imagegif($image);

Eléphanteau du PHP | 16 Messages

16 déc. 2011, 17:49

merci mais le problème est réglé
j'ai donné le script qui fonctionne ;)