Comment afficher un captcha à la fin d'un formulaire ?

tiger159 Messages postés 7 Date d'inscription mercredi 9 janvier 2008 Statut Membre Dernière intervention 9 juin 2012 - 23 oct. 2008 à 18:39
tiger159 Messages postés 7 Date d'inscription mercredi 9 janvier 2008 Statut Membre Dernière intervention 9 juin 2012 - 23 oct. 2008 à 23:31
Bonjour,
j'aimerais savoir comment intégrer un captcha
à la suite de l'affichage d'un formulaire.

(Il semble que ce soit dû à 'header' qui a déjà
envoyé ses paramètres).Comment éviter l'erreur:

l'image "http://localhost/monsite/afficheformulaire.php" ne peut être
affichée car elle contient des erreurs.

= mon script ===
<?php
session_start();////> si je verifie avec var_dump(headers_list()); j'obtiens l'affichage suivant:
// ==> array(4) { [0]=>  string(23) "X-Powered-By: PHP/5.2.5" [1]=>  string(38) "Expires: Thu, 19 Nov 1981 08:52:00 GMT" [2]=>  string(77) "Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0" [3]=>  string(16) "Pragma: no-cache" }
//================================================================================
echo"<form action='enregistrer.php' method='post'>";
//
echo"nom
";
echo"
";
echo"prenom
";
echo"
";
echo"adresse
";
echo"
";
echo"code postal
";
echo"
";
echo"ville
";
echo"
";
echo"recopiez le code affiché dans le cadre et validez";

// je voudrais afficher le captcha ici à la fin du formulaire

//session_start();

srand(); //initialisation du générateur mais plus obligatoire > PHP 4.2

// Définition du content-type
header("Content-type: image/png");

$lettres = array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z');

$code = $lettres[rand(0,25)].rand(100,1000000); //si on met que des chiffres, il faut mettre (string)
$longueurcode = strlen($code);

$_SESSION['code'] = $code;

$largeur = $longueurcode * 25;
$hauteur =  40;

$image = imagecreatetruecolor($largeur, $hauteur);

$couleurfond = imagecolorallocate($image, rand(150,255),rand(150,255),rand(150,255));

imagefilledrectangle($image, 0, 0, $largeur, $hauteur, $couleurfond);

$fontchiffre = array('1.ttf','2.ttf');
$fontlettre = array('3.ttf');

imagettftext($image, rand(15,30), rand(-45,15), 10, 35, imagecolorallocate($image, rand(10,100) ,rand(10,100),rand(10,100)), $fontlettre[0], $code[0]);

for ($i = 1; $i < $longueurcode; $i++) {
      $largeurx = 20 * $i + 30;
    $hauteury = rand(25,40);
    imagettftext($image, rand(27,32), rand(0,45), $largeurx,$hauteury, imagecolorallocate($image, rand(10,100) ,rand(10,100),rand(10,100)), $fontchiffre[rand(0,1)], $code[$i]);
//    imagestring($image, rand(1,15), $largeurx,$hauteury, $codegenere[$i], imagecolorallocate($image, rand(100,255) ,rand(100,255),rand(100,255)) );
}

imagepng($image);
imagedestroy($image);

?>
//==============
le script du captcha appelé seul dans une page fonctionne pourtant.
Merci pour votre réponse.

2 réponses

coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
23 oct. 2008 à 18:52
salut

tu dois faire deux pages differentes, et l'appeller comme ca :
0
tiger159 Messages postés 7 Date d'inscription mercredi 9 janvier 2008 Statut Membre Dernière intervention 9 juin 2012
23 oct. 2008 à 23:31
Merci pour ta réponse coucou 747.
0
Rejoignez-nous