|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
ANTI-SPAM SIMPLE À INSERER MAIS NÉCESSITE BDD
Information sur la source
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
- // 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.
// 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.
Fichier Zip
Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !
Télécharger le zip
Historique
- 22 août 2008 06:05:29 :
- ajout d'un commentaire =)
- 23 août 2008 11:25:29 :
- Correction ajout de la variable $base au fichier config.php et ajout de conexion bdd au fichier de validation
Sources de la même categorie
Sources en rapport avec celle ci
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
formulaire mail [ par arnaud ]
quand je recoit un formulaire mail je trouve le fichier postdata.att ... comment fair pour l'avoir sans les 20% et les "+"merciarnaud
php et html [ par Vinz ]
Salut,Voila, j'utilise un formulaire qui me lance un php. Dans ce formulaire j'ai un <input type=file name='monFile'>.Mon probleme c'est que j'a
Formulaire PHP3 + PJ [ par Jiboule ]
Salut à tous ! Quelqu'un peut-il me sauver ? J'ai fait un formulaire en HTML avec une dizaine de champs + la possibilité de joindre un fichier. Je ne
Formulaire PHP3 + PJ [ par Jiboule ]
Salut à tous ! Quelqu'un peut-il me sauver ? J'ai fait un formulaire en HTML avec une dizaine de champs + la possibilité de joindre un fichier. Je ne
code simple pour formulaire [ par bernard ]
bonsoir à tous, je suis débutant de chez débutant et j'ai besoin d'aide.je voudrais réaliser un programme en php.il s'agit d'un formulaire où le visit
Formulaire + fichier externe [ par koko ]
J'ai un petit formulaire avec 2 text (<INPUT TYPE="text") et un button. Quand je clique sur le button, il doit mettre les 2 text dans un fichier ex
Formulaire et SQL [ par Christophe46 ]
Salut,J'espère trouver de l'aide sur ce forum,J'ai fait une base de données MySql, avec une table et des champs comme nom, prenom, telephone, adresse,
Formulaire et SQL [ par Christophe46 ]
Salut,J'espère trouver de l'aide sur ce forum,J'ai fait une base de données MySql, avec une table et des champs comme nom, prenom, telephone, adresse,
Formulaire [ par benett ]
Bonjour à tous,J'ai une petite question :Dans un formulaire, certaine valeurs s'obtiennent par recopie et proviennent d'une autre page,comment peut-on
Formulaire [ par benett ]
Bonjour à tous,J'ai une petite question :Dans un formulaire, certaine valeurs s'obtiennent par recopie et proviennent d'une autre page,comment peut-on
|
Téléchargements
Logiciels à télécharger sur le même thème :
|