Problème d'affichage de captcha

Fermé
derrick - 2 déc. 2010 à 17:16
 derrick - 4 déc. 2010 à 11:13
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 vendredi 7 septembre 2007 Statut Membre Dernière intervention 25 mars 2015 94
3 déc. 2010 à 00:54
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
Ok, j'ai essayé et ça marche parfaitement :-D

Merci beaucoup!
0