Form to mail avec protection par token et captcha contrôles des champs en php

Description

bonjour

Une source en forme de Tutorial : protéger ses formulaires !
Pour lutter contre le spam une technique simple et d'ajouter un captcha à ses formulaires mais le renforcer par un token qui empêche de se faire recopier le formulaire c'est mieux ...
les contrôles de champs sont en php
la regex pour contrôler l'email peut être changer elle est basique

a++

Source / Exemple :


<?php
session_start();
$_SESSION['token']=$token=uniqid((double)microtime()*1000000, true);
/*session_start(); toujours en tête de fichier quoi qu'il y est en dessous*/
if(!isset($_SESSION['form'])){
$form  = '<br>Votre mail ? (obligatoire)<br><input type="text" name="mail" value="" size=51">'."\r\n";
$form .= '<br>Votre messsage ? (obligatoire)<br><textarea name="message" cols="51" rows="5" ></textarea>'."\r\n";
}else{
$form=$_SESSION['form'];
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
  <meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
  <meta name="generator" content="PSPad editor, www.pspad.com">
  <title>FORMULAIRE DE CONTACT</title>
  </head>
  <body bgcolor="#abcdef">
  <form action="traiter.php" method="post"  name="frm">
  <input type="hidden" name="token" value="<?php echo $token;?>"> 
  <?php
  echo $form;
  ?>
  <!-- pas obligatoire -->
  <br>Champs facultatifs
  <br>Votre nom ?<br><input type="text" name="nom" value="" size="30">
  <br>Votre prènom ?<br><input type="text" name="prenom" value="" size="30">
  <br>Votre téléphone ?<br><input type="text" name="telephone" value="" size="10">
  <!-- fin champs pas obligatoire -->
  <p><img src="captcha/captcha.php" width="100" height="40" alt="code" border="0" />
  Recopier le code antispam : <input type="text" name="code" size="7" /> (obligatoire)</p>
  <br><input type="submit" name="send" value="Envoyer">
  </form>
  </body>
</html>

Conclusion :


v1 le reste est dans le zip

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.