Mot interdit dans un imput
Fermé
Bonjour,
Je cherche en vain une fonction js me permettant d'interdire certaines adresses mail dans l'input d'un formulaire.
J'ai cherché une fonction interdisant certain mot pour l'adapter mais je ne trouve rien de fonctionnel.
Y a t'il possibilité d'interdire certains mots dans un input pour empêcher la validation de certaines adresses et de ce fait l'envoi du formulaire? (comme interdire les mots hotmail ou msn après le @ )?
Merci d'avance
Amicalement,
Chris
Je cherche en vain une fonction js me permettant d'interdire certaines adresses mail dans l'input d'un formulaire.
J'ai cherché une fonction interdisant certain mot pour l'adapter mais je ne trouve rien de fonctionnel.
Y a t'il possibilité d'interdire certains mots dans un input pour empêcher la validation de certaines adresses et de ce fait l'envoi du formulaire? (comme interdire les mots hotmail ou msn après le @ )?
Merci d'avance
Amicalement,
Chris
A voir également:
- Mot interdit dans un imput
- Trousseau mot de passe iphone - Guide
- Mot de passe - Guide
- Voir mot de passe wifi android - Guide
- Mettre un mot de passe sur un dossier - Guide
- Mot de passe administrateur - Guide
11 réponses
Tout d'abord merci pour ta réponse.
Le formulaire que j'utilise est un cgi_bin fourni par mon hébergeur, donc je n'y ai pas accès.
Je peux uniquement ajouter des fonctions javascript sur ma page, ce que j'ai d'ailleurs fait pour vérifier la forme de l'adresse mail et si tous les champs étaient bien remplis et empêcher l'envoi du formulaire si ces conditions n'étaient pas le cas.
Je souhaite donc trouver un script à ajouter me permettant d'interdire l'écriture de certains mots (en l'occurrence hotmail, msn ...) dans le champ email et empêcher l'envoi du formulaire si ces adresses sont indiquées.
Amicalement,
Chris
Le formulaire que j'utilise est un cgi_bin fourni par mon hébergeur, donc je n'y ai pas accès.
Je peux uniquement ajouter des fonctions javascript sur ma page, ce que j'ai d'ailleurs fait pour vérifier la forme de l'adresse mail et si tous les champs étaient bien remplis et empêcher l'envoi du formulaire si ces conditions n'étaient pas le cas.
Je souhaite donc trouver un script à ajouter me permettant d'interdire l'écriture de certains mots (en l'occurrence hotmail, msn ...) dans le champ email et empêcher l'envoi du formulaire si ces adresses sont indiquées.
Amicalement,
Chris
Serait il possible d'insérer cette fonction dans la vérification de l'adresse mail avec un (hotmail|msn) par exemple?
Toutes mes tentatives sont infructueuses. Soit le formulaire ne fonctionne plus, soit toutes les adresses sont invalides. :(
J'avoue que je n'y connais strictement rien.
Mon code fonctionnel se présente ainsi actuellement:
function valideEmail(adr1) {
adresse1 = adr1;
if(adresse1 && !estVide(adresse1)) {
if(adresse1.length > 100)
erreurs.push('Cette adresse est trop longue');
var atom = "[!#-'*+\\-\\/-9=?A-Z^-~]+";
var regex_adresse =
new RegExp("^"+atom+"(\\."+atom+")*@"+atom+"(\\."+atom+")*\\.[a-zA-Z]{2,4}$");
if(adresse1.search(regex_adresse) != 0)
erreurs.push("- L'adresse Email ne semble valide.");
}
else if(champsObligatoires["E-mail"])
erreurs.push("- L'adresse Email est obligatoire.");
}
function confirmeEmail(adresse2) {
if(adresse2) {
if(adresse1 && (adresse2 != adresse1))
erreurs.push("- Les deux adresses Email ne correspondent pas.");
}
else if(champsObligatoires["email2"])
erreurs.push("- La confirmation de l'adresse Email est obligatoire.");
}
Merci d'avance.
Toutes mes tentatives sont infructueuses. Soit le formulaire ne fonctionne plus, soit toutes les adresses sont invalides. :(
J'avoue que je n'y connais strictement rien.
Mon code fonctionnel se présente ainsi actuellement:
function valideEmail(adr1) {
adresse1 = adr1;
if(adresse1 && !estVide(adresse1)) {
if(adresse1.length > 100)
erreurs.push('Cette adresse est trop longue');
var atom = "[!#-'*+\\-\\/-9=?A-Z^-~]+";
var regex_adresse =
new RegExp("^"+atom+"(\\."+atom+")*@"+atom+"(\\."+atom+")*\\.[a-zA-Z]{2,4}$");
if(adresse1.search(regex_adresse) != 0)
erreurs.push("- L'adresse Email ne semble valide.");
}
else if(champsObligatoires["E-mail"])
erreurs.push("- L'adresse Email est obligatoire.");
}
function confirmeEmail(adresse2) {
if(adresse2) {
if(adresse1 && (adresse2 != adresse1))
erreurs.push("- Les deux adresses Email ne correspondent pas.");
}
else if(champsObligatoires["email2"])
erreurs.push("- La confirmation de l'adresse Email est obligatoire.");
}
Merci d'avance.
Bonjour et merci beaucoup pour ton intervention manelsousse.
Mais lorsque j'ajoute ton script au mien actuel, mon formulaire ne fonctionne plus du tout. :(
Je n'ai indiqué ici que la partie de mon javascript vérifiant la validité de l'adresse mail.
Mais mon script actuel est bien plus long et sa fonction se nomme ainsi:
function valideForm(f)
Dans mon formulaire la fonction de vérification se présente ainsi:
<script type="text/javascript" src="js/verification_formulaire.js"></script>
<form method="post" action="http://perso0.free.fr/cgi-bin/form2mail.pl" name="formulaire" onsubmit="return valideForm(this);">
.....
<input value="Effacer" type="reset"> <input value="Envoyer" type="submit">
Mais lorsque j'ajoute ton script au mien actuel, mon formulaire ne fonctionne plus du tout. :(
Je n'ai indiqué ici que la partie de mon javascript vérifiant la validité de l'adresse mail.
Mais mon script actuel est bien plus long et sa fonction se nomme ainsi:
function valideForm(f)
Dans mon formulaire la fonction de vérification se présente ainsi:
<script type="text/javascript" src="js/verification_formulaire.js"></script>
<form method="post" action="http://perso0.free.fr/cgi-bin/form2mail.pl" name="formulaire" onsubmit="return valideForm(this);">
.....
<input value="Effacer" type="reset"> <input value="Envoyer" type="submit">
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour,
Je suis vraiment nul en programmation et j'ai beau tourner dans tout les sens je n'arrive à rien.
Dans mon script donné plus haut, j'ai essayé en ajoutant ceci:
var mots_interdits =
new Array("hotmail","msn","yahoo");
if(adresse1.search(mots_interdits) == -1)
erreurs.push("- Adresse Email interdite.");
Ce qui donne dans la partie du script vérifiant l'adresse mail:
......
*/
function valideEmail(adr1) {
adresse1 = adr1;
if(adresse1 && !estVide(adresse1)) {
if(adresse1.length > 100)
erreurs.push('Cette adresse est trop longue');
var mots_interdits =
new Array("hotmail","msn","yahoo");
if(adresse1.search(mots_interdits) == -1)
erreurs.push("- Adresse Email interdite.");
var atom = "[!#-'*+\\-\\/-9=?A-Z^-~]+";
var regex_adresse =
new RegExp("^"+atom+"(\\."+atom+")*@"+atom+"(\\."+atom+")*\\.[a-zA-Z]{2,4}$");
if(adresse1.search(regex_adresse) != 0)
erreurs.push("- L'adresse Email ne semble valide.");
}
else if(champsObligatoires["E-mail"])
erreurs.push("- L'adresse Email est obligatoire.");
}
function confirmeEmail(adresse2) {
if(adresse2) {
if(adresse1 && (adresse2 != adresse1))
erreurs.push("- Les deux adresses Email ne correspondent pas.");
}
else if(champsObligatoires["email2"])
erreurs.push("- La confirmation de l'adresse Email est obligatoire.");
}
/*
.......
mais ça ne fonctionne toujours pas.
Plus aucune adresse ne passent. :(
Quelqu'un pourrait il m'aider s'il vous plait?
Merci
Je suis vraiment nul en programmation et j'ai beau tourner dans tout les sens je n'arrive à rien.
Dans mon script donné plus haut, j'ai essayé en ajoutant ceci:
var mots_interdits =
new Array("hotmail","msn","yahoo");
if(adresse1.search(mots_interdits) == -1)
erreurs.push("- Adresse Email interdite.");
Ce qui donne dans la partie du script vérifiant l'adresse mail:
......
*/
function valideEmail(adr1) {
adresse1 = adr1;
if(adresse1 && !estVide(adresse1)) {
if(adresse1.length > 100)
erreurs.push('Cette adresse est trop longue');
var mots_interdits =
new Array("hotmail","msn","yahoo");
if(adresse1.search(mots_interdits) == -1)
erreurs.push("- Adresse Email interdite.");
var atom = "[!#-'*+\\-\\/-9=?A-Z^-~]+";
var regex_adresse =
new RegExp("^"+atom+"(\\."+atom+")*@"+atom+"(\\."+atom+")*\\.[a-zA-Z]{2,4}$");
if(adresse1.search(regex_adresse) != 0)
erreurs.push("- L'adresse Email ne semble valide.");
}
else if(champsObligatoires["E-mail"])
erreurs.push("- L'adresse Email est obligatoire.");
}
function confirmeEmail(adresse2) {
if(adresse2) {
if(adresse1 && (adresse2 != adresse1))
erreurs.push("- Les deux adresses Email ne correspondent pas.");
}
else if(champsObligatoires["email2"])
erreurs.push("- La confirmation de l'adresse Email est obligatoire.");
}
/*
.......
mais ça ne fonctionne toujours pas.
Plus aucune adresse ne passent. :(
Quelqu'un pourrait il m'aider s'il vous plait?
Merci
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
16 sept. 2008 à 10:35
16 sept. 2008 à 10:35
Salut,
il faut que tu parcours l'array pour comparer je t'ai fait ça avec une methode un peu différente.
Il y a surement une autre methode avec les Regex, mais difficile à mettre en œuvre avec une liste de mots à vérifier
Tu peux rajouter autant de if que tu as d'input à verifier
Chez moi cet exemple fonctionne
@lain
il faut que tu parcours l'array pour comparer je t'ai fait ça avec une methode un peu différente.
Il y a surement une autre methode avec les Regex, mais difficile à mettre en œuvre avec une liste de mots à vérifier
Tu peux rajouter autant de if que tu as d'input à verifier
<html> <script language="javascript" type="text/javascript" > <!-- function valideForm(form_test){ var mots_interdits =new Array("hotmail","msn","yahoo"); this.form_test=form_test; if(form_test.nom.value == "") { alert("Veuillez entrer votre nom"); form_test.nom.focus(); return false; } if(form_test.email.value == "") { alert("Veuillez entrer votre adresse email"); form_test.email.focus(); return false; } var exp=new RegExp("^[\\w\\-]+(\\.[\\w\\-]+)*@[\\w\\-]+(\\.[\\w\\-]+)*\\.[\\w\\-]{2,}$", "i"); if(form_test.email.value !="" && !exp.test(form_test.email.value)){ alert("Adresse email non valide "); form_test.email.focus(); return false; } if(form_test.email.value !="" && exp.test(form_test.email.value)){ //si format d'adresse valide verif si autorise var email=form_test.email.value; var hote_cty=new Array(); hote_cty=email.split("@"); //decoupage adresse par rapport a @ //hote_cty[1] de la forme yahoo.fr var hote=new Array(); hote=hote_cty[1].split("."); //separation par rapport au point //hote[0] serra le nom de l'hote genre yahoo //alert ("Hote= "+hote[0]); //il faut parcourir l'array des interdits for(i=0;i<mots_interdits.length;i++){ if(hote[0] == mots_interdits[i]){ //si on retouve hote parmi l'array alert("Adresse email non autorisée "); form_test.email.focus(); return false; } } } return true; } //--> </script> <form name="formulaire" method="post" action="form2mail.pl" onsubmit="return valideForm(this);"> Nom:<input type="text" name="nom" id="nom" value=""><br /> Email:<input type="text" name="email" id="email" value=""> <br /><br /> <input type="submit" name="envoyer" value="Envoyer" > <input type="reset" name="effacer" value="Effacer" > </html>
Chez moi cet exemple fonctionne
@lain
Bonjour et merci beaucoup alain_42 ;)
Le souci c'est que je ne sais pas comment adapter ton code au mien :(
Je rappelle que je n'y connais absolument rien en programmation, je bidouille un tout petit peu (vraiment un tout petit peu) en suivant des exemples et ça s'arrête là malheureusement.
Comment puis je faire?
Merci d'avance
Le souci c'est que je ne sais pas comment adapter ton code au mien :(
Je rappelle que je n'y connais absolument rien en programmation, je bidouille un tout petit peu (vraiment un tout petit peu) en suivant des exemples et ça s'arrête là malheureusement.
Comment puis je faire?
Merci d'avance
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
17 sept. 2008 à 14:02
17 sept. 2008 à 14:02
Salut,
tu mets ma partie fonction Javascript dans ton fichier .js, à la place de celui existant, ensuite tu rajoutes des
if(.....){
}
pour chacun des champs que tu veux verifier comme pour le "nom" mon l'exemple
et tu adaptes la partie html comme dans l'exemple
si tu n'y connais vraiement rien en prog ce serra dur ?
tu mets ma partie fonction Javascript dans ton fichier .js, à la place de celui existant, ensuite tu rajoutes des
if(.....){
}
pour chacun des champs que tu veux verifier comme pour le "nom" mon l'exemple
et tu adaptes la partie html comme dans l'exemple
si tu n'y connais vraiement rien en prog ce serra dur ?
pardon pour le retard de réponse et merci à toi
Le soucis c'est que ton code ne correspond pas au mien, il ne vérifie pas que la confirmation de l'adresse mail corresponde bien au premier champ de l'adresse mail fournie.
Y a t'il un moyen de rajouter cette fonction?
J'ai essayé en conservant le mien sans le modifier et en plaçant dans l'entete de ma page html:
<!--
function valideDomaine(f) {
var interdit = /\W(msn|hotmail)\.\w+$/i;
var pos = f.email.value.search(interdit);
if(pos > 0)
alert("Les adresses en "+f.email.value.substr(pos+1)+" sont refusées.");
return pos < 0;
}
-->
et en appelant cette nouvelle fonction de cette façon:
<form method="post" action="...cgi-bin/form2mail.pl" name="formulaire" onsubmit="return valideDomaine(this) && valideForm(this)";>
mais ça ne va pas, mon formulaire est envoyé sans plus aucune vérification (que les champs obligatoires soient remplis ou non, que l'adresse et sa confirmation soient correctes, interdites ou non).
Une idée?
Merci d'avance. :)
Le soucis c'est que ton code ne correspond pas au mien, il ne vérifie pas que la confirmation de l'adresse mail corresponde bien au premier champ de l'adresse mail fournie.
Y a t'il un moyen de rajouter cette fonction?
J'ai essayé en conservant le mien sans le modifier et en plaçant dans l'entete de ma page html:
<!--
function valideDomaine(f) {
var interdit = /\W(msn|hotmail)\.\w+$/i;
var pos = f.email.value.search(interdit);
if(pos > 0)
alert("Les adresses en "+f.email.value.substr(pos+1)+" sont refusées.");
return pos < 0;
}
-->
et en appelant cette nouvelle fonction de cette façon:
<form method="post" action="...cgi-bin/form2mail.pl" name="formulaire" onsubmit="return valideDomaine(this) && valideForm(this)";>
mais ça ne va pas, mon formulaire est envoyé sans plus aucune vérification (que les champs obligatoires soient remplis ou non, que l'adresse et sa confirmation soient correctes, interdites ou non).
Une idée?
Merci d'avance. :)
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
26 sept. 2008 à 12:24
26 sept. 2008 à 12:24
dans mon code:
"emai"l correspond au name ="....." de <input type="text" name="email" ...
donc si ça ne correspond pas chez toi change "email" dans la ligne du if par ce que tu as dans le name= de <input correspondant à ton champ d'adresse mail du formulaire
if(form_test.email.value !="" && exp.test(form_test.email.value)){
"emai"l correspond au name ="....." de <input type="text" name="email" ...
donc si ça ne correspond pas chez toi change "email" dans la ligne du if par ce que tu as dans le name= de <input correspondant à ton champ d'adresse mail du formulaire
Je me suis mal expliqué ...
Dans mon formulaire j'ai deux champs email (Adresse email - Confirmation de l'adresse email)
Mon code de vérification actuel vérifie que les deux adresses renseignées sont bien semblables, si ce n'est pas le cas, un message d'alerte le signale (les deux adresses ne correspondent pas).
function confirmeEmail(adresse2) {
if(adresse2) {
if(adresse1 && (adresse2 != adresse1))
erreurs.push("- Les deux adresses Email ne correspondent pas.");
}
else if(champsObligatoires["email2"])
erreurs.push("- La confirmation de l'adresse Email est obligatoire.");
}
Le code que tu me donnes n'a pas cette fonction, je me trompe?
Est il possible de l'ajouter?
Dans mon formulaire j'ai deux champs email (Adresse email - Confirmation de l'adresse email)
Mon code de vérification actuel vérifie que les deux adresses renseignées sont bien semblables, si ce n'est pas le cas, un message d'alerte le signale (les deux adresses ne correspondent pas).
function confirmeEmail(adresse2) {
if(adresse2) {
if(adresse1 && (adresse2 != adresse1))
erreurs.push("- Les deux adresses Email ne correspondent pas.");
}
else if(champsObligatoires["email2"])
erreurs.push("- La confirmation de l'adresse Email est obligatoire.");
}
Le code que tu me donnes n'a pas cette fonction, je me trompe?
Est il possible de l'ajouter?
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
26 sept. 2008 à 14:10
26 sept. 2008 à 14:10
pour rajouter cette fonction :
en partant du principe que tes deux champs mail ont comme name=
email
email2
en partant du principe que tes deux champs mail ont comme name=
email2
<script language="javascript" type="text/javascript" > <!-- function valideForm(form_test){ var mots_interdits =new Array("hotmail","msn","yahoo"); this.form_test=form_test; if(form_test.nom.value == "") { alert("Veuillez entrer votre nom"); form_test.nom.focus(); return false; } if(form_test.email.value == "") { alert("Veuillez entrer votre adresse email"); form_test.email.focus(); return false; } var exp=new RegExp("^[\\w\\-]+(\\.[\\w\\-]+)*@[\\w\\-]+(\\.[\\w\\-]+)*\\.[\\w\\-]{2,}$", "i"); if(form_test.email.value !="" && !exp.test(form_test.email.value)){ alert("Adresse email non valide "); form_test.email.focus(); return false; } if(form_test.email1.value !="" && exp.test(form_test.email.value)){ //si format d'adresse valide verif si autorise var email=form_test.emai.value; var hote_cty=new Array(); hote_cty=email.split("@"); //decoupage adresse par rapport a @ //hote_cty[1] de la forme yahoo.fr var hote=new Array(); hote=hote_cty[1].split("."); //separation par rapport au point //hote[0] serra le nom de l'hote genre yahoo //alert ("Hote= "+hote[0]); //il faut parcourir l'array des interdits for(i=0;i<mots_interdits.length;i++){ if(hote[0] == mots_interdits[i]){ //si on retouve hote parmi l'array alert("Adresse email non autorisée "); form_test.email.focus(); return false; } } } if(form_test.email2.value !="") { if(form_test.email.value !="" && (form_test.email.value != form_test.email2.value)) erreurs.push("- Les deux adresses Email ne correspondent pas."); } else if(champsObligatoires["email2"]) erreurs.push("- La confirmation de l'adresse Email est obligatoire."); } return true; } //--> </script>
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
10 sept. 2008 à 14:31
10 sept. 2008 à 14:31
Regardes du côté des REGEX
manelsousse
Messages postés
59
Date d'inscription
lundi 10 mars 2008
Statut
Membre
Dernière intervention
18 août 2009
12 sept. 2008 à 18:06
12 sept. 2008 à 18:06
utilser
function VerificationEmail(elm)
{
if (elm.value.indexOf("msn") == "-1" &&
elm.value.indexOf("hotmail") == "-1" &&
elm.value != "")
return true;
return false;
}
function controler()
if (VerificationEmail(document.form1.email) == false)
{
alert("Email non Valide.");
document.form1.email.focus();
return false;
}
et dans la creation de ton formulaire essaye
<form action="" method="post" name="form1" onSubmit="return controler()">
function VerificationEmail(elm)
{
if (elm.value.indexOf("msn") == "-1" &&
elm.value.indexOf("hotmail") == "-1" &&
elm.value != "")
return true;
return false;
}
function controler()
if (VerificationEmail(document.form1.email) == false)
{
alert("Email non Valide.");
document.form1.email.focus();
return false;
}
et dans la creation de ton formulaire essaye
<form action="" method="post" name="form1" onSubmit="return controler()">