8792 sujets

Développement web côté serveur, CMS

Bonjour,
Je génère un code de sécurité au format png et dèsfois, j'ai ce message d'erreur. Cela signifie quoi ?
‰PNG  IHDRPöOˉPLTEÿÿÿ.w? žI3IDATxœc` ð3Ô0|` dJ6¤1Î`l€1 L ÆÑø˜`ÃäÈt í¤!}§IEND®B`‚

Mon code source :
session_start();

define('KEY_LARGEUR_IMAGE', 80);
define('KEY_HAUTEUR_IMAGE', 18);

$string = 'ABCDEFGHIJKMLNPQRSTUVWXYZ0123456789'; // le o sera un 0
$nbCaracteres = strlen($string);
$code=''; // le code de sécurité

for ($i=1; $i<=5; $i++){
	$code .= $string[mt_rand(0,$nbCaracteres-1)];
}

$_SESSION['codeSecuriteMembre'] = $code;

for ($i=0; $i< strlen($code); $i++){
	$codeAafficher .= $code[$i].' ';
}


header('Content-Type : image/png');

$imageCodeSecurite = imagecreate(KEY_LARGEUR_IMAGE, KEY_HAUTEUR_IMAGE);

$blanc = imagecolorallocate($imageCodeSecurite, 0xFF, 0xFF, 0xFF);
$vert = imagecolorallocate($imageCodeSecurite, 46, 119, 27);
imagestring($imageCodeSecurite, 3, 8, 2, $codeAafficher, $vert);

imagepng($imageCodeSecurite);

imagedestroy($imageCodeSecurite) // libération de l'espace mémoire


Merci
Modifié par raffoul (30 May 2007 - 13:29)
Apparament, tu n'affiches pas l'image mais son contenu binaire... Je ne penses pas qu'il s'agisse d'un bug de GD mais plutôt de comment tu t'y prends pour afficher l'image.
Ca ressemble effectivement à une image PNG affichée au format texte.

Attention au header HTTP, normalement y'a pas d'espace entre le header et le double-point :
header('Content-Type: image/png');
Ah en effet, c'est une erreur de frappe, je corrige, on verra si ça change.

Mais cette erreur survient peut être une fosi tous les 40 affichages. C'est bizarre quand même.
Bon je viens de tester ça ne me le fait plus. Bizarre que ce ne soit qu'un simple espace qui fasse tout planter. Smiley biggrin

Ben c'est résolu. Merci