Bonjour à tous,

Voila je suis débutante en php mais j'aimerais protéger mon formulaire. En cherchant un peu partout j'ai trouvée du code php captcha.
Cependant lorsque je verifie il me m'affiche : Il m'affiche 2 images captcha et il le place tout en haut de mon formulaire alors que j'aimerais qu'il soit en bas. Je ne comprend pas pourquoi.

Si quelqu'un à une solution à me donner...


Voici mon formulaire : produitcalltax4.php

   <table width="407" border="0">
      <tr>
    <?php $chaine = str_shuffle("a+b-c*d/e+f-g/h.i*j+k-l*--______-----+++++++++++++_++++++++++++++//////_////////////////////////////////////.....................????????????????????????????????m*n/o-p+q+r/s5t5u-v+w+x+y-z/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+0-1*2/3.4+5-6*7/8.9"); 
$chaine = md5($chaine).';'.$chaine.';'.str_shuffle($chaine); 
echo "<img src='captcha.php?shuffle=".$chaine."' alt='Image' />"; 

?>
 
  <td><form action="formulaire-merci2.php" method="post" enctype="application/x-www-form-urlencoded" name="formcontact" target="_top" id="formcontact" onsubmit="MM_validateForm('label5','','R','label6','','R','email','','RisEmail','label','','R','label4','','R','label3','','RisNum','label2','','R');return document.MM_returnValue""mailto:aurorelombard@hotmail.fr>
            <div id="formulaire">
              <fieldset>
              <legend class="orangetitre">Formulaire</legend>
                <span id="sprytextfield1">
              <label for="nom"  class="Style12"></label>
              </span><br />
              <span id="sprytextarea1">
              <label class="Style12" for="adressecontact"></label>
              </span>
              <table width="398" border="0">
                <tr>
                  <td width="152"><label for="label6"  class="textecourantnoir">Nom * </label></td>
                  <td width="236"><span class="Style11">
                    <input name="nom" type="text" class="champ" id="label5" accesskey="n" tabindex="1" size="30" />
                  </span></td>
                </tr>
                <tr>
                  <td><label class="textecourantnoir" for="label6">Prénom * </label></td>
                  <td><span class="Style11">
                    <input name="prenom" type="text" class="champ" id="label6" accesskey="n" tabindex="2" size="30" />
                  </span></td>
                </tr>
                <tr>
                  <td><span class="textecourantnoir">E-mail * </span></td>
                  <td><span class="Style11">
                    <input name="email" type="text" class="champ" id="email" accesskey="n" tabindex="3" size="30" />
                  </span></td>
                </tr>
              </table>
              <span id="spryselect1">
              <label for="nbrtelephone"></label>
              <br />
              </span>
              </fieldset>
              <span id="spryselect1">
              <fieldset>
              <legend class="orangetitre">Information sur l'entreprise</legend>
                <table width="396" border="0">
                <tr>
                  <td width="150"><span class="textecourantnoir">Nom de l'entreprise * </span></td>
                  <td width="236"><span class="Style11">
                    <input name="entreprise" type="text" class="champ" id="label" accesskey="n" tabindex="4" size="30" />
                  </span></td>
                </tr>
                <tr>
                  <td valign="top">
                    <label class="Style12" for="email"><span class="textecourantnoir">Adresse</span></label>
                    <span class="textecourantnoir">                    * </span></td>
                  <td><span class="Style11">
                    <textarea name="adresse" cols="23" rows="2" wrap="physical" id="label2" accesskey="a" tabindex="5"></textarea>
                  </span></td>
                </tr>
                <tr>
                  <td><label class="textecourantnoir" for="email">Pays * </label></td>
                  <td><input name="pays" type="text" class="champ" id="label4" accesskey="e" tabindex="6" size="30" /></td>
                </tr>
                <tr>
                  <td><span class="textecourantnoir">Téléphone * </span></td>
                  <td><input name="telephone" type="text" class="champ" id="label3" accesskey="e" tabindex="7" size="30" /></td>
                </tr>
              </table>
              </fieldset>
                <label> </label>
                <div align="center">
                  <fieldset>
                  <legend class="orangetitre">Infrastructure</legend>
                  <table width="396" border="0">
                    <tr>
                      <td width="146"><span class="textecourantnoir">Nombres de téléphones * </span></td>
                      <td width="240"><select name="nbrtelephone" id="formulaire2" accesskey="d" tabindex="8">
                        <option value="Moins de 10" selected="selected">Moins de 10</option>
                        <option value="11 a 100">11 à 100</option>
                        <option value="101 a 1000">101 à 1000</option>
                        <option value="1001 a 2500">1001 à 2500</option>
                        <option value="2501 a 10000">2501 à 10000</option>
                        <option value="Supérieures a 10000">Supérieures à 10000</option>
                      </select></td>
                    </tr>
                    <tr>
                      <td valign="top"><span class="Style11">
                        <label class="textecourantnoir" for="label8">Commentaires</label>
                      </span></td>
                      <td><label>
                      <textarea name="commentaires" cols="23" rows="5" id="commentaires" tabindex="9"></textarea>
                      </label></td>
                    </tr>
                  </table>
                  </fieldset>
                  <label> </label>
                  <div align="center"></div>
                  <tr> 
                  <img src='captcha.php?shuffle=<?php echo $chaine ?>' alt='Image' />
                  <tr><br />
                  <tr></p>
                  <input type='text' name='code' />
                  <tr>
                    <p>
                      <input name="submit" type="submit" value="Envoyer" />
                      </p>
                  </div>
                <label id="bouton" for="valider"></label>
            </span></div>
        </form></td>
      </tr>
    </table>
  </div>



Merci à tous
Bon j'ai trouvé la solution. En fait je n'avais pas placé mon premier bout de code au bon endroit. Il fallait que je le mette juste à coté de mon bouton envoyer. Voilà pourquoi il me l'affichait au dessus.

Mais comme je vous ai dit je suis vraiment debutante en php, et maintenant je cherche à changer la couleur de mon texte lorsque le code captcha n'est pas tapé correctement. Par defaut il me l'affiche en noir. J'ai essayer de mettre des balises... mais bien sur cela ne marche pas?

Quelqu'un saurait ce qu'il faut rajouter pour avoir mon texte : "le code entré est invalide" en blanc.

Voici mon code si ca peux aider.


    <?php 
if ($_POST["email"]<>'') { 
	$ToEmail = 'monmail@hotmail.fr'; 
	$EmailSubject = 'Demande d évaluation Calltax'; 
	$mailheader = "From: ".$_POST["email"]."\r\n"; 
	$mailheader .= "Reply-To: ".$_POST["email"]."\r\n"; 
	$mailheader .= "Content-type: text/html; charset=iso-8859-1\r\n"; 
	$MESSAGE_BODY = "Nom: ".$_POST["nom"]."<br>"; 
	$MESSAGE_BODY = "Prenom: ".$_POST["prenom"]."<br>";
	$MESSAGE_BODY .= "Email: ".$_POST["email"]."<br>"; 
	$MESSAGE_BODY .= "Entreprise: ".$_POST["entreprise"]."<br>";
	$MESSAGE_BODY .= "Adresse: ".$_POST["adresse"]."<br>"; 
	$MESSAGE_BODY .= "Pays: ".$_POST["pays"]."<br>";
	$MESSAGE_BODY .= "Telephone: ".$_POST["telephone"]."<br>";   
	$MESSAGE_BODY .= "Commentaires: ".nl2br($_POST["commentaires"])."<br>"; 
	$MESSAGE_BODY .= "Calltax brochure: ".nl2br($_POST["radio"])."<br>";
	$MESSAGE_BODY .= "Agile brochure: ".nl2br($_POST["radio2"])."<br>";
	mail($ToEmail, $EmailSubject, $MESSAGE_BODY, $mailheader) or die ("Failure"); 
?>
    <span class="texteformulaire">Votre requête a été envoyé</span>
    <?php 
} else {
?> 
    
    <?php 
}; 
?>
<?php 
function parsesh($sh) 
{ 
$sh = preg_replace('#(.*)\;(.*)\;(.*)#', '\\2', $sh); 
$sh = preg_replace('#[^a-zA-Z0-9]+#', '', $sh); 
$sh = substr($sh, 0, 5); 
return $sh; 
} 

if(isset($_POST['sh']) AND isset($_POST['code']) AND $_POST['code'] == parsesh($_POST['sh'])) 
{ 
// [Ici, le code de formmail.php] 
} 
else 
{ 
echo "Le code entr&eacute; est invalide.";
 
exit; 
} 
?> 



Encore une fois merci beaucoup!
Je sais je suis en train de faire un monologue... mais des fois cela fait du bien d'exposer son problème en esperant trouver une solution.

Savez vous pourquoi même lorsque le code tapé n'est pas bon il m'envoi quand même le mail?
Je ne vais vraiment pas répondre à ta question, mais juste te conseiller de t'orienter vers des captcha du genre ReCaptcha (Qui appartient d'ailleurs à Google), ou la mise en place est tellement plus facile.

Bon courage Smiley smile