Anti-spam simple à inserer mais nécessite bdd

Description

Anti-spam, fonctionnant comme un captcha, simple à installer mais nécessitant une base de données.

J'ai créé cet anti-spam, car je n'ai jamais compris comment insérer un captcha à mes formulaires (des fois dans la vie il y a des choses que l'ont ne comprends pas et on y peut rien xD).

Donc je pense que cela peut servir.

Vos avis m'intéressent!! Alors n'hésitez pas.

Source / Exemple :


// Source: aeroth-design (azumi13)
// Decomposition:
// 3 fichiers + 1 table sql
// 1: configuration d'acces bdd
// 2: votre formulaire
// 3: validation de votre formulaire ou envoie de votre mail
// 4: votre table sql

// 1: Fichier config.php

<?php
$serveur = 'localhost'; 
$login = ''; 
$mdp = ''; 
$base = '';
?>

// 2: Votre formulaire, dans les balises <form>

<?php
include ('config.php');
mysql_connect($serveur,$login,$mdp);
mysql_select_db($base);
$sql = mysql_query('SELECT * FROM captcha ORDER BY rand() LIMIT 1');
$data = mysql_fetch_array($sql);
echo ''.$data['question'].'';
?>
<input type="text" name="reponse" />
<input type="hidden" name="id" value="<?php echo $data['id']; ?>" />

// 3: Dans votre fichier de validation ou d'envoi de mail

<?php
include ('config.php');
mysql_connect($serveur,$login,$mdp);
mysql_select_db($base);
$sql2 = "SELECT reponse FROM captcha WHERE id='".$_POST['id']."'";
$req2 = mysql_query($sql2) or die('Erreur !<br>'.$sql2.'<br>'.mysql_error()); 
$data2 = mysql_fetch_array($req2);

if( $_POST['couleur'] != $data2['reponse'])
	{
	echo '<br><br><center><b><p>Mauvaise réponse !!</p></b></center>';
	    include('lien vers votre formulaire'); 
    exit; 
    }
?>

// 4: Votre table 

DROP TABLE IF EXISTS `captcha`;
CREATE TABLE IF NOT EXISTS `captcha` (
  `id` int(11) NOT NULL auto_increment,
  `question` text NOT NULL,
  `reponse` text NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=11 ;

INSERT INTO `captcha` (`id`, `question`, `reponse`) VALUES
(1, 'La neige est de couleur :', 'blanche'),
(2, 'Une tomate est de couleur :', 'rouge'),
(3, 'Le cotton est de couleur :', 'blanche'),
(4, 'La carotte est de couleur :', 'orange'),
(5, 'Le citron est de couleur :', 'jaune'),
(6, 'Combien fait 2+2 :', '4'),
(7, 'Combien fait 10-5 :', '5'),
(8, 'Combien fait 1+9', '10'),
(9, 'Combien fait 2x4 :', '8'),
(10, 'Combien fait 3x4 :', '12');
//Possibilité de rajouter autant de question que l'on souhaite

//LE ZIP CONTIENT UN EXEMPLE ET TOUT EST COMMENTE POUR MIEUX S'Y RETROUVER.

Conclusion :


c'est une sécurité simple contre le spam.

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.