Problème d'intégration d'un CAPTCHA en PHP

Résolu/Fermé
Bastien572 - 2 août 2010 à 14:21
 Bastien572 - 2 août 2010 à 15:38
Bonjour,

J'ai un problème avec mon CAPTCHA ! Je n'arrive pas à l'introduire dans une page de contact en php avec la fonction mail() !
Le code a beau être erroné le formulaire de contact s'envoie quand même !!!

Connaissez-vous la raiso de ce probleme ???
En éspérant de prochaines réponses de votre part

Mon site: http://magic-mania.legtux.org/contact.php

CODES:




contact.php


<?php
session_start();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >

<head>
<meta name="description" content="Bienvenue dans Magic-Mania. Magic-Mania est un site web ou sont regroupes tout les meilleurs tours de Jojomagic ! Magic-Mania inclue tout les tours de Jojomagic: du plus gore au plus bluffant ! Site webmasterise par Bastien572." />
<meta name="keywords" content="magic,mania,monsite,tour de magie,magie,-,bluff,Magie,MAGIE,voila" />
<meta http-equiv="content-language" content="fr" />
<meta name="Author" content="Bastien572" />
<meta name="identifier-url" content="http://magic-mania.legtux.org" />
<meta name="language" content="fr" />
<meta name="revisit-after" content="7" />
<meta name="robots" content="noindex" />
<meta name="google-site-verification" content="cCR9IyXukBqICPEZ0gLzZH9Qz2uNKSDgsnHoNPC1ezo" />
<meta http-equiv="content-Type" content="text/html; charset=iso-8859-15" />

<link rel="shortcut icon" href="favicon.ico" />
<link href="style.css" title="Défaut" rel="stylesheet" type="text/css" media="screen" />

<title>Magic-Mania - Nous contacter</title>



<script type="text/javascript">
function ChangeStatut(formulaire) {
if(formulaire.condition.checked == true) {formulaire.submit.disabled = false }
if(formulaire.condition.checked == false) {formulaire.submit.disabled = true }
}
</script>

</head>

<body>

<?php include("haut.php"); ?>


<div id="contenu">
<h2>CONTACT</h2><br />
<p>Pour nous contacter ou signaler un bug...<br /> <br />
<b>Remplir ceci : </b></p>




<form action="function.mail.php" method="post">
Selectionnez votre action :
<br />
<select name="chosefaite">
<option>Nous contacter
<option>Signaler un bug
</select>

<br />
<br />
Votre nom :<br />
<input type="text" name="nom"><br /><br />
Votre adresse Email :<br />
<input type="text" name="email"><br /><br />
Votre message pour nous ou signalement de bug(s) :<br />
<textarea rows="2" cols="40" name="message"></textarea><br /><br />

<br />
<label for="verif">Recopiez le code de vérification suivant :</label>
<img src="captcha.php" alt="image de protection" /><br />
<input type="text" name="verif" size="10" maxlength="5" />

<p><input type="checkbox" name="condition" value="valeur" onClick="ChangeStatut(this.form)" /> J'accepte de ne publier ni menaces ni insultes</p>
<br />
<input type="submit" name="submit" id="submit" style="font-size: 18pt" value="Envoyer" disabled />
<input type="reset" value="Annuler" name="Action" style="font-size: 8pt">
</form>




</div>
<?php include("bas.php"); ?>

</body>
</html>












Captcha.php:

<?php
// on démarre une session pour pouvoir mémoriser le code
session_start();
// on définit les caractères utilisés pour le code généré
$liste = "23456789ABCDEFGHJKLMNPQRSTUVWXYZ";
// génére le code en piochant dans les caractères de la liste
$code = '';
while(strlen($code) != 6) {
$code .= $liste[rand(0,36)];
}
// on mémorise le code de 6 caractères généré en session
$_SESSION['code']=$code;

// on créé une image de 70 x 20 pixels (larg x hauteur)
$img = imageCreate(70, 20) or die ("Problème de création GD");
// Choix de la couleur de fond, ici ça donne du Gris ( RVB)
$background_color = imagecolorallocate ($img, 238, 238, 238);
// Choix de la couleur de la police, ici du noir
$ecriture_color = imagecolorallocate ($img, 0, 0, 0);
// le code la police utilisée
$code_police=5;
// on créé une image jpeg en empêchant la mise en cache
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Cache-Control: post-check=0, pre-check=0', false);
header("Content-type: image/jpeg");
// on introduit le code dans l'image
imageString($img, $code_police,(70-imageFontWidth($code_police) * strlen("".$code.""))/2,0, $code,$ecriture_color);
// on créé une image avec une qualité médiocre de 30%
// pour éviter qu'un robot puisse la lire
imagejpeg($img,'',30);
// on libère la mémoire
imageDestroy($img);
?>






fonction.mail.php:




<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >

<head>
<meta name="description" content="Bienvenue dans Magic-Mania. Magic-Mania est un site web ou sont regroupes tout les meilleurs tours de Jojomagic ! Magic-Mania inclue tout les tours de Jojomagic: du plus gore au plus bluffant ! Site webmasterise par Bastien572." />
<meta name="keywords" content="magic,mania,monsite,tour de magie,magie,-,bluff,Magie,MAGIE,voila" />
<meta http-equiv="content-language" content="fr" />
<meta name="Author" content="Bastien572" />
<meta name="identifier-url" content="http://magic-mania.legtux.org" />
<meta name="language" content="fr" />
<meta name="revisit-after" content="7" />
<meta name="robots" content="noindex" />
<meta name="google-site-verification" content="cCR9IyXukBqICPEZ0gLzZH9Qz2uNKSDgsnHoNPC1ezo" />
<meta http-equiv="content-Type" content="text/html; charset=iso-8859-15" />

<link rel="shortcut icon" href="favicon.ico" />
<link href="style.css" title="Défaut" rel="stylesheet" type="text/css" media="screen" />

<title>Magic-Mania - Nous contacter</title>

</head>

<body>


<?php include("haut.php"); ?>

<div id="contenu">



<h2>CONTACT</h2><br>

<?php
$formMail = $_POST['email'];
$formNom = $_POST['nom'];
$formAction = $_POST['chosefaite'];
$formCommentaire = $_POST['message'];

if(!empty($formMail) && !empty($formAction) && !empty($formNom) ){
$formCommentaire = htmlentities($formCommentaire);

$message = "Message de $formNom qui possede l'adresse mail $formMail et qui a choisi pour action $formAction . Voici son message : \n $formCommentaire \n Systeme cree par par LiittleGeek pour Bastien572";

if( mail('jojomagic@live.fr','Message du formulaire de contact Magic-Mania', $message ) ){
echo 'Les informations ont bien été envoyées ! <a href="contact.php">Retour</a> ';
}
else{
echo 'Une erreur est survenue lors de l\'envoi du message ! <a href="contact.php">Retour</a> ';
}
}
else{
echo 'Merci de remplir les champs nom, prenom, mail...! <a href="contact.php">Retour</a> ';
}

?>





</div>
<?php include("bas.php"); ?>


</body>
</html>



A voir également:

2 réponses

vincent170186 Messages postés 316 Date d'inscription mardi 17 mars 2009 Statut Membre Dernière intervention 28 septembre 2012 52
2 août 2010 à 15:35
salut

alors en théorie (ha la théorie !!!) je dirai qu'il faudrai que tu envois ton formulaire (en ajax) vers une page php, et que si le code correspond au captcha , tu l'envoi sinon tu renvoi un message d'erreur ; ou alors sinon tu envoi juste le capcha et si il il est ok tu renvoie (true) et false si ce n'est pas le cas ! et si c'est true alors le reste du formulaire est envoyé sinon ...rien !

voila !

bon ma reponse est un peu bateau mais j'ai pas trés bien cerné ton probléme ! a part que c'est un probleme de verification du captcha

0
Oui tu as raison !!! J'avais oublié de mettre dans fonction.mail.php la vérification du code !!! Maintenant ca va mieux !!!
0