Exclure un nom de domaine mail dans mon formulaire
Résolu
zephir94
Messages postés
26
Date d'inscription
Statut
Membre
Dernière intervention
-
chico200987 Messages postés 791 Date d'inscription Statut Membre Dernière intervention -
chico200987 Messages postés 791 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Etant spammé sur mon livre d'or j'ai été obligé de mettre en place au fur et à mesure certaines protections captcha, case à cocher et dernièrement un pot de miel.
il me reste un bot qui arrive malgré tout arrive encore à poster en utilisant comme mail de contact mon nom de domaine en changeant le début, par exemple tomy@monnom.fr, ded@monnom.fr....
j'ai commencé par écrire,
je n'arrive pas à donner comme instruction xxx@monnom.fr
car pour l'instant, je test uniquement si le champ mail est vide !
et si je recherche,
il ne recherche que @monnom.fr sans prendre en compte ce qui est devant de façon aléatoire !
comment écrire quelque soit xxx @monnom.Fr ?
Merci par avance à ceux ou celles qui pourront m'aider
Etant spammé sur mon livre d'or j'ai été obligé de mettre en place au fur et à mesure certaines protections captcha, case à cocher et dernièrement un pot de miel.
il me reste un bot qui arrive malgré tout arrive encore à poster en utilisant comme mail de contact mon nom de domaine en changeant le début, par exemple tomy@monnom.fr, ded@monnom.fr....
j'ai commencé par écrire,
<?php
if($_POST['mail'] != ""){
die('bot!');
}
else{
}
?>
je n'arrive pas à donner comme instruction xxx@monnom.fr
car pour l'instant, je test uniquement si le champ mail est vide !
et si je recherche,
<?php
if($_POST['mail'] != @monnom.fr){
die('bot!');
}
else{
}
?>
il ne recherche que @monnom.fr sans prendre en compte ce qui est devant de façon aléatoire !
comment écrire quelque soit xxx @monnom.Fr ?
Merci par avance à ceux ou celles qui pourront m'aider
A voir également:
- Exclure un nom de domaine mail dans mon formulaire
- Whatsapp formulaire opposition - Guide
- Formulaire de réclamation facebook - Guide
- Formulaire de reclamation instagram - Guide
- Publipostage mail - Accueil - Word
- Windows live mail - Télécharger - Mail
13 réponses
Bonjour Hack_net
Le robot post en utilisant toujours un mail du type @monnom.fr et fait varier ce qui est devant didier55@monnom.fr, zara51@monom.fr...
je cherche donc à repérer dans mon champ mail, si c'est présent à bloquer l'envoi
j'ai donc essayé d'écrire
mais si il y a des choses d'écrites devant il ne les prend pas en compte ! donc je cherche à gérer quelque soit ce qui est écrit devant @monnom.fr
Merci à toi
Le robot post en utilisant toujours un mail du type @monnom.fr et fait varier ce qui est devant didier55@monnom.fr, zara51@monom.fr...
je cherche donc à repérer dans mon champ mail, si c'est présent à bloquer l'envoi
j'ai donc essayé d'écrire
<?php
if($_POST['mail'] != "@monnom.fr"){
die('bot!');
}
else{
}
?>
mais si il y a des choses d'écrites devant il ne les prend pas en compte ! donc je cherche à gérer quelque soit ce qui est écrit devant @monnom.fr
Merci à toi
chico200987
Messages postés
791
Date d'inscription
Statut
Membre
Dernière intervention
143
Tu as lu mon message ?! Je t'ai donné la solution à implémenter
Euh... tu dis :
"il ne recherche que @monnom.fr sans prendre en compte ce qui est devant de façon aléatoire !" et juste après : "comment écrire quelque soit xxx @monnom.Fr ? " faudrait savoir ! Tu veux quoi exactement ? Bloquer un nom de domaine mail ou un utilisateur ?
L'éducation par l'apprentissage nous sert à abdiquer nos idées primitives ancrées dans l'animal que nous sommes. Elle est primordiale et en aucun cas elle ne doit être secondée ou remplacée.
"il ne recherche que @monnom.fr sans prendre en compte ce qui est devant de façon aléatoire !" et juste après : "comment écrire quelque soit xxx @monnom.Fr ? " faudrait savoir ! Tu veux quoi exactement ? Bloquer un nom de domaine mail ou un utilisateur ?
L'éducation par l'apprentissage nous sert à abdiquer nos idées primitives ancrées dans l'animal que nous sommes. Elle est primordiale et en aucun cas elle ne doit être secondée ou remplacée.
Salut,
Pour ta question, il suffirait simplement d'utiliser la fonction PHP stripos() https://www.php.net/manual/fr/function.stripos.php :)
Pour ta question, il suffirait simplement d'utiliser la fonction PHP stripos() https://www.php.net/manual/fr/function.stripos.php :)
Merci à toi chico200987,
J'ai bien vue ta réponse mais je ne suis pas parvenu à l'adapter à mon cas malgré de nombreuses tentatives hélas !
J'ai bien vue ta réponse mais je ne suis pas parvenu à l'adapter à mon cas malgré de nombreuses tentatives hélas !
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour
Une solution:
- créer un champ "age" avec id "age'
- faire un CSS qui associé à l'id "#age" a comme caractéristique: display: none;
Donc, ce champ age ne devra pas s'afficher et rester vide.
Si le boot est assez stupide, il va remplir ce champ.
Donc, coté PHP, s'il y a quelque chose dans "age" vous faites comme si vous avez enregistré, sauf que vous jetez.
A+
Une solution:
- créer un champ "age" avec id "age'
- faire un CSS qui associé à l'id "#age" a comme caractéristique: display: none;
Donc, ce champ age ne devra pas s'afficher et rester vide.
Si le boot est assez stupide, il va remplir ce champ.
Donc, coté PHP, s'il y a quelque chose dans "age" vous faites comme si vous avez enregistré, sauf que vous jetez.
A+
Merci à toi chico200987,
Sauf que cela bloque bien l'envois si effectivement xxx@monnom.fr mais dès lors que tu essayes juste après avec un mail valide il poste ceux bloqués plus le valide !!!
imaginons que je face deux essais avec @monnom.fr et un troisième valide, et bien j'ai en même temps les deux faux et le valide qui apparaissent j'espère être plus clair.
comme un effet mémoire !!!
je viens de voir en fait qu'il post aussi à la fermeture du navigateur aussi !
Merci mpmp93 mais j'ai déjà implanté ta solution
Sauf que cela bloque bien l'envois si effectivement xxx@monnom.fr mais dès lors que tu essayes juste après avec un mail valide il poste ceux bloqués plus le valide !!!
imaginons que je face deux essais avec @monnom.fr et un troisième valide, et bien j'ai en même temps les deux faux et le valide qui apparaissent j'espère être plus clair.
comme un effet mémoire !!!
je viens de voir en fait qu'il post aussi à la fermeture du navigateur aussi !
Merci mpmp93 mais j'ai déjà implanté ta solution
si le captcha ne fonctionne pas, utiliser une question aléatoire avec liste déroulante, exemple:
quel jour sommes nous? et dans la liste déroulante les jours de la semaine..... mais placés aléatoirement à chaque fois dans un ordre différent....
ET sl le boot passe ce test, c'est que le boot est pas un robot mais un être humain.... avec un PC.
Alors là, vous sortez l'artillerie lourde:
- faire un script en action-script pour flash player
- intégrer à la page une animation qui utilise le script action-script
- ce script écrit dans le cache de macromédia des données s'il n'y en a pas....
- parrallèlement action-script transmet au serveur le code qu'il a implanté dans le cache
- si le "rigolo" a injecté un spam, vous tagguez le code enregistré en BDD
- au prochain tour, lorsque le spammeur revient et ré-injecte un spam, vous laissez faire, mais au moment d'enregistrer, vous vérifiez si le script pour flash player a renvoyé un code déja inscrit auparavant
- si c'est le code du spammeur, vous lui dites: "message enregistré" et vous jetez le spam
Pourquoi un script pour flash-player? Parce que c'est la seule appli qui peut écrire ailleurs que dans les cookies. Le spammeur pourra changer d'adresse IP, vider le cache de navigation, vider les cookies, tant qu'il ne videra pas le cache macromedia, il sera tracé.
A+
quel jour sommes nous? et dans la liste déroulante les jours de la semaine..... mais placés aléatoirement à chaque fois dans un ordre différent....
ET sl le boot passe ce test, c'est que le boot est pas un robot mais un être humain.... avec un PC.
Alors là, vous sortez l'artillerie lourde:
- faire un script en action-script pour flash player
- intégrer à la page une animation qui utilise le script action-script
- ce script écrit dans le cache de macromédia des données s'il n'y en a pas....
- parrallèlement action-script transmet au serveur le code qu'il a implanté dans le cache
- si le "rigolo" a injecté un spam, vous tagguez le code enregistré en BDD
- au prochain tour, lorsque le spammeur revient et ré-injecte un spam, vous laissez faire, mais au moment d'enregistrer, vous vérifiez si le script pour flash player a renvoyé un code déja inscrit auparavant
- si c'est le code du spammeur, vous lui dites: "message enregistré" et vous jetez le spam
Pourquoi un script pour flash-player? Parce que c'est la seule appli qui peut écrire ailleurs que dans les cookies. Le spammeur pourra changer d'adresse IP, vider le cache de navigation, vider les cookies, tant qu'il ne videra pas le cache macromedia, il sera tracé.
A+
merci de ton aide mais j'ai déjà fait tout cela, j'ai même fait une addition aléatoire aussi !!!
Bonjour à tous,
Merci mpmp93 mais je préfère exploiter la solution proposée par chico200987,
normalement la fonction "die" doit arrêter le processus en cours et je n'arrive pas à comprendre pourquoi soit à la fermeture du navigateur ou soit en cas de post après essais, ce dernier permet l'envoi des messages !
As tu une idée sur cela chico200987 ?
Vider le cache des navigateurs en utilisant :
Merci par avance pour ta réponse
Merci mpmp93 mais je préfère exploiter la solution proposée par chico200987,
normalement la fonction "die" doit arrêter le processus en cours et je n'arrive pas à comprendre pourquoi soit à la fermeture du navigateur ou soit en cas de post après essais, ce dernier permet l'envoi des messages !
As tu une idée sur cela chico200987 ?
Vider le cache des navigateurs en utilisant :
header('Pragma:nocache');?
Merci par avance pour ta réponse
ou peut être,
<? Header("Cache-Control: no-store, no-cache, must-revalidate");?
Header("Pragma: no-cache"); ?>
Salut,
Ton comportement est bizarre, hm as-tu essaye de vider tes variables ?
As-tu un code un peu plus complet a partager ? Ce comportement est peut-etre du a autre chose
Ton comportement est bizarre, hm as-tu essaye de vider tes variables ?
As-tu un code un peu plus complet a partager ? Ce comportement est peut-etre du a autre chose
Bonjour chico200987,
Voici le code complet de ma page,
Je te remercie à nouveau pour ton aide
Amicalement
zephir
Voici le code complet de ma page,
<!DOCTYPE html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<meta name="description" CONTENT="">
<meta HTTP-EQUIV="IMAGETOOLBAR" content="no" SCROLLING="yes" >
<meta name="keywords" CONTENT="">
<head>
<title>Livre d'or</title>
<script src="jquery.js"></script>
<style type="text/css">
body {
background: #000000;
color: #000000;
font-family: Verdana ;
color:white;
font-size:14px;
}
</style>
<style type="text/css">
a:link
{
text-decoration:none;
border: none;
cursor: pointer;
outline-style:none;
}
a:hover
{
color:black;
border: none;
cursor: pointer;
text-decoration:none;
outline-style:none;
}
.submit
{
color:#ffffff;
font-family: 'monotype corsiva';
font-size: 18px;
cursor: pointer;
border: none;
outline-style:none;
-moz-border-radius: 10px;
-webkit-border-radius: 10px;
border-radius: 10px;
border: 2px solid #ffffff;
background:#000000;
}
.submit:hover
{
color:#000000;
font-family: 'monotype corsiva';
font-size: 18px;
cursor: pointer;
border: none;
outline-style:none;
-moz-border-radius: 10px;
-webkit-border-radius: 10px;
border-radius: 10px;
border: 2px solid #000000;
background:#ffffff;
}
button.css3button {
color:#ffffff;
cursor: pointer;
border: none;
outline-style:none;
-moz-border-radius: 10px;
-webkit-border-radius: 10px;
border-radius: 10px;
border: 2px solid #ffffff;
background:#000000;
}
button.css3button:hover {
color:#000000;
cursor: pointer;
border: none;
outline-style:none;
-moz-border-radius: 10px;
-webkit-border-radius: 10px;
border-radius: 10px;
border: 2px solid #000000;
background:#ffffff;
}
</style>
<style type="text/css">
div.grande
{
width : 70%;
}
p{
line-height:25px;
}
.box
{
padding: 20px;
background: #eeeeee;
border: 1px solid #FFFCFC;
border-radius: 10px;
-moz-border-radius: 10px;
-webkit-border-radius: 10px;
}
</style>
<!--[if !IE]><!-->
<style type="text/css">
fieldset {
border:1px solid #FFFFFF;
border-radius:10px;
moz-border-radius:10px;
webkit-border-radius:10px;
padding-left:1px;
height:80px;
width:400px;
margin-bottom:1px;
}
</style>
<!--<![endif]-->
<style type="text/css">
#website {
visibility:hidden;
}
span {
border:1px solid red;
padding:3px;
}
legend {
color:white;
font-weight:bold
align = left;
}
</style>
<style type="text/css">
.text
{
background-color:white;
color:black;
cursor: URL()
outline-style:none;
-moz-border-radius: 15px;
-webkit-border-radius: 15px;
border-radius: 15px;
padding-left:15px;
height:20px;
width:180px;
margin-top: 0%;
margin-bottom: 0%;
margin-left:0%;
margin-right:0%;
border: 2px solid black;
}
.text:hover
{
background-color:gold;
outline-style:none;
}
.text1
{
background-color:white;
color:black;
outline-style:none;
-moz-border-radius: 15px;
-webkit-border-radius: 15px;
border-radius: 15px;
padding-left:15px;
height:20px;
width:180px;
margin-top: 0%;
margin-bottom: 0%;
margin-left:0%;
margin-right:0%;
border: 2px solid black;
}
.text1:hover
{
background-color:gold;
outline-style:none;
}
.text2
{
background-color:white;
color:black;
outline-style:none;
-moz-border-radius: 15px;
-webkit-border-radius: 15px;
border-radius: 15px;
padding-left:15px;
height:80px;
width:400px;
margin-top: 0%;
margin-bottom: 0%;
margin-left:0%;
margin-right:0%;
border: 2px solid black;
}
.text3
{
background-color:white;
color:black;
outline-style:none;
-moz-border-radius: 15px;
-webkit-border-radius: 15px;
border-radius: 15px;
padding-left:15px;
height:2px;
width:180px;
margin-top: 0%;
margin-bottom: 0%;
margin-left:0%;
margin-right:0%;
border: 2px solid black;
}
textarea{ resize:none;}
.text2:hover
{
outline-style:none;
background-color:gold;
}
</style>
<?php
if($_POST['website'] != ""){
die('Connard de bot!');
}
else{
}
?>
<?php
if(isset($_POST['nobot'])) {
// la case est cochée
}
?>
<script type="text/javascript">
var a = Math.ceil(Math.random() * 10);
var b = Math.ceil(Math.random() * 10);
var c = a + b
function DrawBotBoot()
{
document.write("Combien font "+ a + " + " + b +" ? ");
document.write("<input id='BotBootInput' type='text' maxlength='2' size='2'/>");
}
function ValidBotBoot(){
var d = document.getElementById('BotBootInput').value;
if (d == c) {
return true;
}
alert ('Le résultat est faux !');
return false;
}
</script>
<script type="text/javascript">
function verif(){
return document.getElementById(nom).value.length > 1;
}
</script>
<?php
preg_match('/[bcdfghjklmnpqrstvwxzBCDFGHJKLMNPQRSTVWXZ]{4,}/',$Message)
?>
<form method="post" action="writeguest.php"
onsubmit="return ValidBotBoot()&& verif()">
<br/><div align="center" style="line-height:30px" ><FONT FACE="gabriola" size="9" color="white">Fils de Saône </FONT><br/><FONT FACE="gabriola" size="6" color="white">Livre d'or </FONT></div>
<table border="0" align="center">
<tr><td><img src="test.jpg"></td><td>
<Div>
<table>
<tr><td><FONT FACE="monotype corsiva" size="1" color="black">website :</FONT></td>
<td><input type=text name=website id="website" class="text3" ></td></tr>
<tr><td><FONT FACE="monotype corsiva" size="4" color="white">Nom :</FONT></td>
<td><input type=text name="nom" id="nom" size=25 class="text"></td></tr>
<tr><td><FONT FACE="monotype corsiva" size="4" color="white">Mail :</FONT></td>
<td><input type=text name=mail size=25 class="text1"></td></tr>
<tr><td><FONT FACE="monotype corsiva" size="4" color="white">Message :</FONT></td><td colspan=1>
<textarea name=message style="overflow:auto " id="Message"rows=6 cols=47 class="text2"></textarea>
</td></tr>
</table>
</Div>
</td><td><img src="livre.jpg"></td></td></tr></table>
<script>
$(document).ready(function(){
$('<div style="text-align:center;"><input type="checkbox" name="nobot" required="true"> Je confirme ne pas être un robot</div>').prependTo($('#maDiv'));
});
</script>
<div align="center">
<fieldset>
<legend align="right"><FONT FACE="monotype corsiva" size="4" color="white"> Captcha Vérification</FONT></legend>
<div style="text-align:center;">
<div id="maDiv"></div>
</div>
<br/>
<div style="text-align:center;">
<script type="text/javascript">DrawBotBoot()</script>
</div>
</fieldset></div><br/>
<div style="text-align:center; padding: 4px 0;"><input border=0 type="submit" class="submit" style="width: 160px;" value="Envoyer le formulaire">
</div>
</form>
<div style="text-align:center;"><button border=0 type="button" class="css3button" style="width: 160px;"onclick="location.href='http://fils-de-saone.fr/index.php';" onMouseOver="window.status='';return true"><FONT FACE="monotype corsiva" size="4">Retourner au menu</FONT></div>
<div align="center" ><div class="grande" style="border:3px solid #000000; padding 1px;"><div style="text-align:left;"><FONT FACE="gabriola" size="6" color="white" >Vos impressions, commentaires:</FONT></div></div>
<div align="center" >
<div class="grande" style="border:3px solid #FFFFFF; padding 3px;"><div style="text-align:left;">
<?php include("guestbook.txt"); ?></div></div>
<br/>
Je te remercie à nouveau pour ton aide
Amicalement
zephir
Avec bien sur le code que j'avais retiré
sachant que selon mes recherches la fonction die() devrait arrêter le processus et le post ne devrait pas être gardé en mémoire et posté en même tant que le suivant !
<?php
$pos1 = stripos($_POST['mail'], "@monnom.fr");
if ($pos1 !== false) {
die('bot!');
}
else{
}
?>
sachant que selon mes recherches la fonction die() devrait arrêter le processus et le post ne devrait pas être gardé en mémoire et posté en même tant que le suivant !
J'ai trouvé,
La vérification doit s'effectuer dans mon fichier writeguest.php
avec mes variables
La vérification doit s'effectuer dans mon fichier writeguest.php
avec mes variables
echo htmlspecialchars_decode(htmlentities($chaine, ENT_NOQUOTES, 'ISO-8859-1'));je te remercie infiniment
$nom = htmlspecialchars(stripslashes($_POST['nom']));
$mail = htmlspecialchars(stripslashes($_POST['mail']));
$pos1 = stripos($_POST['mail'], "@fils-de-saone.fr");
if ($pos1 !== false) {
exit();
}
else{
}
$message = htmlspecialchars(stripslashes($_POST['message']));