Contact form + capcha

Fermé
dexcom Messages postés 35 Date d'inscription mercredi 22 janvier 2014 Statut Membre Dernière intervention 20 mars 2018 - Modifié par dexcom le 14/08/2016 à 11:15
arshi92 Messages postés 129 Date d'inscription mercredi 27 juin 2012 Statut Membre Dernière intervention 12 octobre 2017 - 8 sept. 2016 à 11:02
Bonjour,

J'ai récuperer un petit script pour un formulaire de contact , se qui se passe c'est que si je met un mauvais code il ne me le dit pas mais il ne m envoie pas de message , si j'entre le bon code c est ok il envoie et j'ai mis une page de redirection pour dire message envoyer , est se que je doit creer une page aussi pour dire que le code est pas correct ou il y a il un code a mettre ?Aussi comment faire pour que l'on soit obliger de remplis tout les champs et informer s ils sont incorrect

html

  <form action="mailer.php" method="post">

Vos nom et prénom:<br />
<input name="name" type="text" value="<?php echo $_GET['name'];?>"/>
<br />
<br />

Votre e-mail:<br />
<input name="from" type="text" value="<?php echo $_GET['from'];?>"/>
<br />
<br />

Sujet:<br />
<input name="subject" type="text" value="<?php echo $_GET['subject'];?>"/>
<br />
<br />

Anti-spam:<br />
<input name="verif_box" type="text"/>
<img src="verificationimage.php?<?php echo rand(0,9999);?>" alt="verification" width="50" height="24" align="absbottom" /><br />
<br />

<?php if(isset($_GET['wrong_code'])){?>
<div>Mauvais code</div><br />
<?php ;}?>

Message:<br />

<textarea name="message"><?php echo $_GET['message'];?></textarea>
<p><input name="Submit" type="submit" value="Envoyer"/></p>
<input type="hidden" name="good_url" value="redirect.html">
</form>



mailer.php

<?php

$name = $_REQUEST["name"];
$subject = $_REQUEST["subject"];
$message = $_REQUEST["message"];
$from = $_REQUEST["from"];
$verif_box = $_REQUEST["verif_box"];
$name = stripslashes($name);
$message = stripslashes($message);
$subject = stripslashes($subject);
$from = stripslashes($from);

if(md5($verif_box).'a4xn' == $_COOKIE['tntcon']){

$message = "Nom: ".$name."\n".$message;
$message = "De: ".$from."\n".$message;
mail("***@hotmail.com", 'Message: '.$subject, $_SERVER['REMOTE_ADDR']."\n\n".$message, "From: $from");
header("Location: redirect.html");
setcookie('tntcon','');
} else {

header("Location:".$_SERVER['HTTP_REFERER']."?subject=$subject&from=$from&message=$message&wrong_code=true");
header("Location: ");
}
?>




verificationimage.php

<?php

header('Content-type: image/jpeg');

$width = 50;
$height = 24;

$my_image = imagecreatetruecolor($width, $height);

imagefill($my_image, 0, 0, 0xFFFFFF);

for ($c = 0; $c < 40; $c++){
$x = rand(0,$width-1);
$y = rand(0,$height-1);
imagesetpixel($my_image, $x, $y, 0x000000);
}

$x = rand(1,10);
$y = rand(1,10);

$rand_string = rand(1000,9999);
imagestring($my_image, 5, $x, $y, $rand_string, 0x000000);

setcookie('tntcon',(md5($rand_string).'a4xn'));

imagejpeg($my_image);
imagedestroy($my_image);
?>





Ai-je omis quelque chose ? Merci


1 réponse

arshi92 Messages postés 129 Date d'inscription mercredi 27 juin 2012 Statut Membre Dernière intervention 12 octobre 2017 17
8 sept. 2016 à 11:02
Bonjour.
Pour obliger à remplir le champ il suffit d'ajouter l'attibut : required="required" dans tes champs.

Exemple :

<input name="subject" type="text" required="required" value="<?php echo $_GET['subject'];?>"/>

Et pour informer les champs incorrects tu peux utiliser une autre page ou ajouter du code sur ta page. Et faire la vérification à partir des donnée envoyées.
1