voila j'ai un formulaire de commande avec un captcha, le formulaire fonctionne bien et le captcha aussi mais le probleme qui se pose c'est ou inseret le code de vérification du captcha.
je vous envoi mon script pour mieu comprendre, tel qu'il est le porbleme est que quand les champs du formulaire sont rempli est exacte il est possible d envoyer les données sans remplir le code du captcha.
CODE
<?php
$cryptinstall="./crypt/cryptographp.fct.php";
include $cryptinstall;
?>
<?php
if (chk_crypt($_POST['code']))
echo "<a><font color='#009700'>=> Bravo, vous avez saisi le bon code !</font></a></br>";
else echo "<a><font color='#FF0000'>=> Erreur, le code est incorrect</font></a></br>";
?>
$cryptinstall="./crypt/cryptographp.fct.php";
include $cryptinstall;
?>
<?php
if (chk_crypt($_POST['code']))
echo "<a><font color='#009700'>=> Bravo, vous avez saisi le bon code !</font></a></br>";
else echo "<a><font color='#FF0000'>=> Erreur, le code est incorrect</font></a></br>";
?>
CODE
<?php
$msg_erreur = "Erreur. Les champs suivants doivent être obligatoirement remplis :<br/><br/>";
$msg_ok = "Votre demande a bien été prise en compte.";
$message = $msg_erreur;
define('MAIL_DESTINATAIRE','xxxxxx_AT_xxxxx.xx';
define('MAIL_SUJET','yyyyyyyyyyyyyyyyyyyyy');
// vérification des champs
if (empty($_POST['Nom'])) $message .= "Votre Nom<br/>";
if (empty($_POST['Prenom'])) $message .= "Votre Prénom<br/>";
if (empty($_POST['Adresse'])) $message .= "Votre adresse<br/>";
if (empty($_POST['Ville'])) $message .= "Votre Ville<br/>";
if (empty($_POST['CP'])) $message .= "Votre code postal<br/>";
if (empty($_POST['Mail'])) $message .= "Votre adresse mail<br/>";
if (empty($_POST['Phone'])) $message .= "Votre numéro de téléphone<br/>";
if (empty($_POST['Login'])) $message .= "Votre Login ftp<br/>";
if (empty($_POST['Pass'])) $message .= "Votre mot de passe<br/>";
// si un champ est vide, on affiche le message d'erreur
if (strlen($message) > strlen($msg_erreur)) { echo $message;
// sinon c'est ok
} else {foreach($_POST as $index => $valeur) {$$index = stripslashes(trim($valeur));
}$interets = $_POST['interets'];$sqlinterets = '';
for ($i=0; $i<count($interets); $i++){$sqlinterets .= $interets[$i];$sqlinterets .= ', ';
}
//Préparation de l'entête du mail:
$mail_entete = "MIME-Version: 1.0\r\n";
$mail_entete .= "From: {$_POST['Nom']} "
."<{$_POST['email']}>\r\n";
$mail_entete .= 'Reply-To: '.$_POST['Mail']."\r\n";
$mail_entete .= 'Content-Type: text/plain; charset="iso-8859-1"';
$mail_entete .= "\r\nContent-Transfer-Encoding: 8bit\r\n";
$mail_entete .= 'X-Mailer:PHP/' . phpversion()."\r\n";
// préparation du corps du mail
$mail_corps .= "Message de :$Nom $Prenom\n";
$mail_corps .= "Adresse : $Adresse, $CP $Ville\n";
$mail_corps .= "Adresse e-mail : $Mail\n";
$mail_corps .= "Numéro de téléphone : $Phone\n";
$mail_corps .= "Login et password : $Login , $Pass\n";
$mail_corps .= "Pack demandé : $Pack\n";
$mail_corps .= "Type d'acces : $Acces\n";
$mail_corps .= "Type du serveur : $TypeSrv\n";
$mail_corps .= "Type du payement : $Paiement\n";
$mail_corps .= "Forfait : $Forfait\n";
// envoi du mail
if (mail(MAIL_DESTINATAIRE,MAIL_SUJET,$mail_corps,$mail_entete)) {
//Le mail est bien expédié
echo $msg_ok;} else {
//Le mail n'a pas été expédié
echo 'Une erreur est survenue lors de l\'envoi du formulaire par email';
}
}
?>
$msg_erreur = "Erreur. Les champs suivants doivent être obligatoirement remplis :<br/><br/>";
$msg_ok = "Votre demande a bien été prise en compte.";
$message = $msg_erreur;
define('MAIL_DESTINATAIRE','xxxxxx_AT_xxxxx.xx';
define('MAIL_SUJET','yyyyyyyyyyyyyyyyyyyyy');
// vérification des champs
if (empty($_POST['Nom'])) $message .= "Votre Nom<br/>";
if (empty($_POST['Prenom'])) $message .= "Votre Prénom<br/>";
if (empty($_POST['Adresse'])) $message .= "Votre adresse<br/>";
if (empty($_POST['Ville'])) $message .= "Votre Ville<br/>";
if (empty($_POST['CP'])) $message .= "Votre code postal<br/>";
if (empty($_POST['Mail'])) $message .= "Votre adresse mail<br/>";
if (empty($_POST['Phone'])) $message .= "Votre numéro de téléphone<br/>";
if (empty($_POST['Login'])) $message .= "Votre Login ftp<br/>";
if (empty($_POST['Pass'])) $message .= "Votre mot de passe<br/>";
// si un champ est vide, on affiche le message d'erreur
if (strlen($message) > strlen($msg_erreur)) { echo $message;
// sinon c'est ok
} else {foreach($_POST as $index => $valeur) {$$index = stripslashes(trim($valeur));
}$interets = $_POST['interets'];$sqlinterets = '';
for ($i=0; $i<count($interets); $i++){$sqlinterets .= $interets[$i];$sqlinterets .= ', ';
}
//Préparation de l'entête du mail:
$mail_entete = "MIME-Version: 1.0\r\n";
$mail_entete .= "From: {$_POST['Nom']} "
."<{$_POST['email']}>\r\n";
$mail_entete .= 'Reply-To: '.$_POST['Mail']."\r\n";
$mail_entete .= 'Content-Type: text/plain; charset="iso-8859-1"';
$mail_entete .= "\r\nContent-Transfer-Encoding: 8bit\r\n";
$mail_entete .= 'X-Mailer:PHP/' . phpversion()."\r\n";
// préparation du corps du mail
$mail_corps .= "Message de :$Nom $Prenom\n";
$mail_corps .= "Adresse : $Adresse, $CP $Ville\n";
$mail_corps .= "Adresse e-mail : $Mail\n";
$mail_corps .= "Numéro de téléphone : $Phone\n";
$mail_corps .= "Login et password : $Login , $Pass\n";
$mail_corps .= "Pack demandé : $Pack\n";
$mail_corps .= "Type d'acces : $Acces\n";
$mail_corps .= "Type du serveur : $TypeSrv\n";
$mail_corps .= "Type du payement : $Paiement\n";
$mail_corps .= "Forfait : $Forfait\n";
// envoi du mail
if (mail(MAIL_DESTINATAIRE,MAIL_SUJET,$mail_corps,$mail_entete)) {
//Le mail est bien expédié
echo $msg_ok;} else {
//Le mail n'a pas été expédié
echo 'Une erreur est survenue lors de l\'envoi du formulaire par email';
}
}
?>
est ce que qqn peux m'aider a palcer le code du captcha pour éviter cela???
Merci