REGIE PUB

ImmortalPC Messages postés 954 Date d'inscription mardi 11 mai 2004 Statut Membre Dernière intervention 11 novembre 2008 - 17 mai 2006 à 14:57
kaizer63 Messages postés 25 Date d'inscription mercredi 18 février 2004 Statut Membre Dernière intervention 22 décembre 2009 - 19 déc. 2008 à 23:22
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/37630-regie-pub

kaizer63 Messages postés 25 Date d'inscription mercredi 18 février 2004 Statut Membre Dernière intervention 22 décembre 2009
19 déc. 2008 à 23:22
Bonsoir a toutes et tous, je vient de tester ton code et voici l'erreur qui en ressort :

Warning: mysql_data_seek() [function.mysql-data-seek]: Offset 0 is invalid for MySQL result index 4 (or the query data is unbuffered) in E:\Serveur\pub.php on line 34

Voici le contenu de la ligne 34 :

if( !mysql_data_seek($result,$rand) )

Je ne comprend pas lourd car moi et le codage php sa fait deux, je ne sait coder que Index.php?Page=xxx lol

Qui pourais m'indiquer le probleme ? Cordialement et merci par avance.
LaurentKOogar Messages postés 369 Date d'inscription samedi 4 septembre 2004 Statut Membre Dernière intervention 20 octobre 2013
22 mai 2006 à 02:51
bien le script :-) le titre un peu ronflant, une regie pub c'est quand meme bien plus conplexe que 3 stats sur des images.
superbaloo78 Messages postés 87 Date d'inscription vendredi 29 août 2003 Statut Membre Dernière intervention 19 mai 2006
19 mai 2006 à 20:22
Effectivement,
c'est mieux comme ca ca m'evite encore des tests et de la rapidite

Merci pour ce conseil
stepibou Messages postés 112 Date d'inscription jeudi 11 mars 2004 Statut Membre Dernière intervention 11 octobre 2006
19 mai 2006 à 15:19
Bon, moi je note pas, de toute facon les notes ne veulent rien dire...
Mais si j'avais noté, j'aurrai mis que 5.

Je t'explique pourquoi : tu parle d'optimiser les resources..
Bon, pour le gd sit'en a pas besoin, en effet c'est peut etre bon.
Mais pour le reste ( a verifier que c 'est plus rapide )
En tout cas tu pert grave en lisibilité et simplicité de ton code. Pour un petit projet ca va, mais ensuite pour un gros... C'est pas dit qu'au contraire ca te demande pas plus de ressource..
Pour un bon code est d'abord un code court et clair...
ce qui n'est pour l'instant pas le cas.

Sinon, ca :
# $imagePath = './pubs/0.jpg';
# $image = '0.jpg';

Faidrai que tu le parametre au debut de ton code et non, en plein milieu comme un cheveux sur la soupe..

Ne te sent pas offusqué, c'est pour te faire avancer que je dis ca.

Bon code !.
a+
ImmortalPC Messages postés 954 Date d'inscription mardi 11 mai 2004 Statut Membre Dernière intervention 11 novembre 2008 2
19 mai 2006 à 13:07
ok
je savais pas ;-)
@+
superbaloo78 Messages postés 87 Date d'inscription vendredi 29 août 2003 Statut Membre Dernière intervention 19 mai 2006
18 mai 2006 à 18:47
nan ca je ne veut pas car ca serait la seule fonction demandant la librairie gd ... je ne souhaite pas l'utiliser ... certains hebergeurs la bloque car elle demande souvent trop de puissance ... :)

donc non je n'utiliserais pas cette fonction
ImmortalPC Messages postés 954 Date d'inscription mardi 11 mai 2004 Statut Membre Dernière intervention 11 novembre 2008 2
18 mai 2006 à 13:32
Salut,

Au lieu de faire
if(strtolower($extensionImage[1]) === 'jpg')
{
header('Content-type: image/jpeg');
}elseif(strtolower($extensionImage[1]) === 'png')
{
header('Content-type: image/png');
}elseif(strtolower($extensionImage[1]) === 'gif')
{
header('Content-type: image/gif');
}

fais :
$info_img = getimagesize($info_img); // On obtiens des infos sur l'image
header('Content-type: '.$size['mime']);// On envoie le type de l'image
unset($info_img);

@+
superbaloo78 Messages postés 87 Date d'inscription vendredi 29 août 2003 Statut Membre Dernière intervention 19 mai 2006
17 mai 2006 à 22:10
Salut
oui je connaissait pas getimagesize ;) mais bon je vais repasser en fopen plus rapide je pense comme me l'a conseiller ImmortalPC cela evite d'utiliser la GD.

Sinon mysql_fetch_array bouffe plus de ram que mysql_fetch_row comme je le fait ici, en effet cela retourne un tableau associatif, donc plus de ram (ca se joue pas a beaucoup mais bon ... un peu + un peu+ un peu = beaucoup :P). Sinon mes mysql_fetch_row a repetition ici me permettaient d'atteindre la ligne que je voulais dans la sql (la ligne $selectedId). Cependant je viens de voir mysql_data_seek qui permet d'atteindre cette ligne directement ;) je modifie mon code avec ces dernieres decouvertes et je poste ;)
stepibou Messages postés 112 Date d'inscription jeudi 11 mars 2004 Statut Membre Dernière intervention 11 octobre 2006
17 mai 2006 à 21:06
hello

avec getimagesize tu recupere le format de l'image...
ensuite, il faut liberer la mémoire de l'image.

tres drole de manière de programer :
pourquoi n'utilise tu pas mysql_fetch_array ?
au lieu de tes boucles, ta base doit etre mal géré...

fin bon, pour moi c'est tres tres loin d'etre parfait.

a+
superbaloo78 Messages postés 87 Date d'inscription vendredi 29 août 2003 Statut Membre Dernière intervention 19 mai 2006
17 mai 2006 à 18:42
>- $extensionImage = explode('.',$image);
>ça marche bien si le nom de ton image n' a pas de .
>0.gif ça marche.
>google.fr.gif ça marche plus.
>
>Donc perso je fais :
>$extensionImage = explode('.',$image);
>$extensionImage = $extensionImage[count($extensionImage)-1];
en effet ... ,mais c'est des id et il n'y aura pas de points dedans ;) donc pas besoin de le traiter :P

pour le switch ... oui je vais le faire :P le seul truc c'est que j'avais la fleme de faire des if elseif .. je le ferais ;)

sinon ouais j'ai pas penser au fopen qui je pense est plus rapide... le imagecreatefromjpeg est lent car il fait un fopen + traitement d'image ;)

merci de tes conseils ... je modifie ca sous peu
ImmortalPC Messages postés 954 Date d'inscription mardi 11 mai 2004 Statut Membre Dernière intervention 11 novembre 2008 2
17 mai 2006 à 14:57
Salut,

nikel ;-)
A 2 petits trucs :-)
- $extensionImage = explode('.',$image);
ça marche bien si le nom de ton image n' a pas de .
0.gif ça marche.
google.fr.gif ça marche plus.

Donc perso je fais :
$extensionImage = explode('.',$image);
$extensionImage = $extensionImage[count($extensionImage)-1];

- Faire un switch pour 3 choix ça te ralentis pour rien.
vaux mieux faire un if et des elseif.

Sinan je remplacerais :
$extensionImage = explode('.',$image);

header('Cache-Control: no-cache, must-revalidate');
header('Pragma: no-cache');
header('Expires:'.gmdate("D, d M Y H:i:s", time() - 3600*24*365));

switch(strtolower($extensionImage[1]))
{
case 'jpg':
$gdImage = imagecreatefromjpeg($imagePath);
header('Content-type: image/jpeg');
imagejpeg($gdImage);
break;
case 'png':
$gdImage = imagecreatefrompng($imagePath);
header('Content-type: image/png');
imagepng($gdImage);
break;
case 'gif':
$gdImage = imagecreatefromgif($imagePath);
header('Content-type: image/gif');
imagegif($gdImage);
break;
}

Par

header('Cache-Control: no-cache, must-revalidate');
header('Pragma: no-cache');
header('Expires:'.gmdate("D, d M Y H:i:s", time() - 3600*24*365));

$info_img = getimagesize($info_img); // On obtiens des infos sur l'image
header('Content-type: '.$size['mime']);// On envoie le type de l'image
$fp = fopen($image, 'r');// On ouvre l'image
echo (fread($fp, filesize($image)));// On lit l'image
fclose($fp);// On ferme l'image

C' est koi le plus rapide ??
fopen ou les fonctions de création des images ???

10/10 ;-)
@+
Rejoignez-nous