Problème d'affichage de captcha

derrick -  
 derrick -
Bonjour,

Je viens de créer un captcha pour une page de mon site internet. Il fonctionne très bien si ce n'est qu'un petit détail agaçant : Lorsque je charge ma page le contenant, il ne s'affiche pas à moins que je clique sur le bouton actualiser de mon navigateur ( que ce soit avec internet explorer, firefox ou opera).

Voilà le code de l'image au cas ou que le problème vient de là :

<?php
/* Fichier captcha.png.php */
session_start();

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

$img = imagecreate (50,15) or die ("Problème de création GD");
$background_color = imagecolorallocate ($img, 255, 255, 255);
$ecriture_color = imagecolorallocate($img, 0, 0, 0);
imagestring ($img, 20, 4, 0, $_SESSION['Captcha'] , $ecriture_color);
imagepng($img);

?>

<?php
/*
Page contenant le captcha PHP

!! L'intégration dans un formulaire et la vérification du captcha n'est pas comprise dans ce code source. !!

*/
session_start();
function ChaineAleatoire($nbcar)
{
$chaine = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';

srand((double)microtime()*1000000);

$variable='';

for($i=0; $i<$nbcar; $i++) $variable .= $chaine{rand()%strlen($chaine)};
return $variable;
}
$_SESSION['Captcha'] = ChaineAleatoire(5);

echo '<img src="captcha.png.php?PHPSESSID='.session_id().'" alt="Recopiez le code"/>';
?>

2 réponses

pitxu Messages postés 689 Date d'inscription   Statut Membre Dernière intervention   95
 
bonjour,

$_SESSION['Captcha'] est vide, tu définis sa valeur après, voilà pourquoi quand tu raffraichis ta page la valeur est définie. Il faut que tu mettes ton code de calcul juste après ton header.
0
derrick
 
Ok, j'ai essayé et ça marche parfaitement :-D

Merci beaucoup!
0