Formulaire PHP : méthode simple de protection
Dicab
-
Christian -
Christian -
Bonjour,
J'ai un petit formulaire en bas des pages de mon site qui permet d'attribuer une note et un commentaire à un article, dont les données partent dans une base SQL (en grosse partie grâce aux aides reçues sur ce site :)
Je suis néanmoins complètement spammé par des robots.
Je voudrai créer un champ de contrôle très simple, comme par exemple "Combien font 2 et 2"
Si la réponse inscrite dans le champ est 4, les données partent dans la base, et sinon, l'envoi est annulé...
Cela doit être tout bête à faire mais je ne vois pas trop la syntaxe qu'il faut...
Merci (encore) pour votre aide :)
Greg
J'ai un petit formulaire en bas des pages de mon site qui permet d'attribuer une note et un commentaire à un article, dont les données partent dans une base SQL (en grosse partie grâce aux aides reçues sur ce site :)
Je suis néanmoins complètement spammé par des robots.
Je voudrai créer un champ de contrôle très simple, comme par exemple "Combien font 2 et 2"
Si la réponse inscrite dans le champ est 4, les données partent dans la base, et sinon, l'envoi est annulé...
Cela doit être tout bête à faire mais je ne vois pas trop la syntaxe qu'il faut...
Merci (encore) pour votre aide :)
Greg
A voir également:
- Formulaire PHP : méthode simple de protection
- Whatsapp formulaire opposition - Guide
- Formulaire de réclamation facebook compte désactivé - Guide
- Formulaire de reclamation instagram - Guide
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
7 réponses
Salut dicab !
Prenons en compte deux fichiers :
- le premier formulaire.php
- le deuxième : verif.php
Dans ton premier fichier tu aura donc ton formulaire (soit un truc de ce genre) :
Dans ton deuxieme fichier, tu récupère tout d'abord tes variables, tu vérifie tes critères et ton insère dans ta bdd. Soit :
Prenons en compte deux fichiers :
- le premier formulaire.php
- le deuxième : verif.php
Dans ton premier fichier tu aura donc ton formulaire (soit un truc de ce genre) :
<form action=verif.php method=POST> <input type=text name=valeur1> <input type=text name=valeur2> <input type=submit> <form>
Dans ton deuxieme fichier, tu récupère tout d'abord tes variables, tu vérifie tes critères et ton insère dans ta bdd. Soit :
<?php
$valeur1= $_POST['valeur1'];
$valeur2 = $_POST['valeur2'];
if($valeur1+$valeur2 ==4) //dans ton exemple
{
//enregistrement dans la base de données
}
else
{
//envoi annulé
}
?>
en fait pour le formulaire, pas de souci...
Mais pour la page "vrif.php" par exemple, je ne sais pas trop où insérer le code que tu m'as indiqué...
La voici :
<?php
define('DB_SERVER', 'localhost');
define('DB_SERVER_USERNAME', '*****');
define('DB_SERVER_PASSWORD', '*****');
define('DB_DATABASE', '*****');
$DATE = Date("d/m/Y H:i:s");
$connect = mysql_connect(DB_SERVER, DB_SERVER_USERNAME,
DB_SERVER_PASSWORD)
or die('Impossible de se connecter : ' . mysql_error());
mysql_select_db(DB_DATABASE, $connect);
$sql = "INSERT INTO notations(ID, DATE, ARTICLE, NOTE, COMMENTAIRE) VALUES ('','$DATE','$ARTICLE','$NOTE','$COMMENTAIRE')";
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
mysql_close();
?>
Ceux qui disent que le PHP est facile sont fous :) lol
Mais pour la page "vrif.php" par exemple, je ne sais pas trop où insérer le code que tu m'as indiqué...
La voici :
<?php
define('DB_SERVER', 'localhost');
define('DB_SERVER_USERNAME', '*****');
define('DB_SERVER_PASSWORD', '*****');
define('DB_DATABASE', '*****');
$DATE = Date("d/m/Y H:i:s");
$connect = mysql_connect(DB_SERVER, DB_SERVER_USERNAME,
DB_SERVER_PASSWORD)
or die('Impossible de se connecter : ' . mysql_error());
mysql_select_db(DB_DATABASE, $connect);
$sql = "INSERT INTO notations(ID, DATE, ARTICLE, NOTE, COMMENTAIRE) VALUES ('','$DATE','$ARTICLE','$NOTE','$COMMENTAIRE')";
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
mysql_close();
?>
Ceux qui disent que le PHP est facile sont fous :) lol
désolé pour le retard !
<?php
$valeur=$_POST['valeur'];
define('DB_SERVER', 'localhost');
define('DB_SERVER_USERNAME', '*****');
define('DB_SERVER_PASSWORD', '*****');
define('DB_DATABASE', '*****');
$DATE = Date("d/m/Y H:i:s");
if ($valeur==4)
{
$connect = mysql_connect(DB_SERVER, DB_SERVER_USERNAME,
DB_SERVER_PASSWORD)
or die('Impossible de se connecter : ' . mysql_error());
mysql_select_db(DB_DATABASE, $connect);
$sql = "INSERT INTO notations(ID, DATE, ARTICLE, NOTE, COMMENTAIRE) VALUES ('','$DATE','$ARTICLE','$NOTE','$COMMENTAIRE')";
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
mysql_close();
}
else
{
echo ' Envoi annulé : réponse incorrecte';
}
?>
Arf... merci beaucoup c'est vraiment sympa
Pour comprendre : Pourquoi est-ce que if ($valeur==4) doit être à cet endroit là ?
Pour comprendre : Pourquoi est-ce que if ($valeur==4) doit être à cet endroit là ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Salut,
Attention quand même à bien utiliser la fonction mysql_real_escape_string() dans le script de ben85350 pour éviter les injections SQL.
Cdt
Attention quand même à bien utiliser la fonction mysql_real_escape_string() dans le script de ben85350 pour éviter les injections SQL.
Cdt
mais pourquoi 2 champs ?
même avec un champ euh ben ca marche pas :(
je dois faire une erreur quelque part... c'est normal les deux signes = avant le 4 ?
Ton petit script correspond à ce que je cherche . Mais que dois je mettre à la place de " Envoi annulé " sachant que c'est un simple envoi de mail contenant les valeurs saisies
D'avance merci
Christian