HEproduct
Messages postés23Date d'inscriptionmardi 18 décembre 2001StatutMembreDernière intervention19 mars 2003
-
6 févr. 2003 à 20:28
120120
Messages postés5Date d'inscriptionlundi 28 mars 2005StatutMembreDernière intervention 6 janvier 2010
-
5 juin 2009 à 13:37
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
120120
Messages postés5Date d'inscriptionlundi 28 mars 2005StatutMembreDernière intervention 6 janvier 2010 5 juin 2009 à 13:37
effectivement avec l'ip ça passe :p
voici une méthode (pas encore finalisé) pour tester un mail via PEAR :
function checkEmail( $email, $srv_mail )
{
// checks proper syntax
$regexp = "^([_a-z0-9-]+)(\.[_a-z0-9-]+)*@([a-z0-9-]+)(\.[a-z0-9-]+)*(\.[a-z]{2,4})$";
if ( !eregi( $regexp, $email ) )
{
echo $this->status_div( 1, "Problème de formatage de l'adresse Email !!!" );
return false;
}
// gets domain name
list( $username, $domain ) = split( '@', $email );
// checks for if MX records in the DNS
$mxhosts = array();
// créer l'objet
require ( "Net/Ping.php" );
$ping = Net_Ping::factory();
// exécuter la commande ping sur l'hôte et afficher la réponse
if ( !PEAR::isError( $ping ) )
{
$response = $ping->ping( $srv_mail );
// if (eregi('error',$response)) return false;
if ( PEAR::isError( $response ) )
{
echo $this->status_div( 1, "Problème pour joindre le server mail" );
return false;
}
return array( $email );
}
return false;
}
Bonne journée
apxa
Messages postés188Date d'inscriptionmercredi 15 mai 2002StatutMembreDernière intervention25 avril 2009 5 juin 2009 à 13:28
Salut,
A l'époque où j'ai posé la source les expr reg n'étaient pas vraiement au point sur tous les navigateurs.
Ceci dit maintenant ce n'est plus la cas on peut effectivement faire une bonne expr reg pour cela.
si j'ai le temps j'en poserais une. Completer ce contrôle du coté serveur peut aussi s'avérer très utile pour la validité des domaines ou IP.
Essayes d'inclure dans ta regexp ce cas la : email@10.24.134.17
Have Fun ;)
120120
Messages postés5Date d'inscriptionlundi 28 mars 2005StatutMembreDernière intervention 6 janvier 2010 5 juin 2009 à 10:54
Bonjour,
Merci pour la source, mais une petite question persiste,
Lorsque j'essaie de renseigner ce type de mail < toto@toto.nccsd >, le mail est validé, alors que jusqu'à aujourd'hui il n'est pas possible de renseigner un suffixe de plus de trois caractères.
Donc $regexp = "^([_a-z0-9-]+)(\.[_a-z0-9-]+)*@([a-z0-9-]+)(\.[a-z0-9-]+)*(\.[a-z]{2,4})$"; (désolé) mais cela à le mérite de fonctionner.
Bonne journée
oufben
Messages postés17Date d'inscriptionmardi 4 février 2003StatutMembreDernière intervention 2 mai 20073 2 mai 2007 à 14:55
une petite remarque cependant...
Si vraiment on veut titiller jusqu'au bout la vérif...
Je suis peut-etre bigleu mais, je n'ai pas vu dans ton code de vérification de la longueur maximale de l'email, car il me semble bien que cette longueur est limitée !
Ainsi, si je rentre une email valide mais de 5000 caracteres dans ta vérif, elle va passer, a moins encore une fois , que j'ai raté qqch lol ;)
oufben
Messages postés17Date d'inscriptionmardi 4 février 2003StatutMembreDernière intervention 2 mai 20073 2 mai 2007 à 13:22
Mise a part le fait que je n'aime pas l'utilisation du break a tout bout de champ dans une boucle (je titille :P ), le code est impecc ^^
Bravo ^^
yoynco
Messages postés3Date d'inscriptionjeudi 14 mars 2002StatutMembreDernière intervention 7 octobre 2008 19 janv. 2007 à 20:22
Bravo Apxa, tu déchires mec !!
apxa
Messages postés188Date d'inscriptionmercredi 15 mai 2002StatutMembreDernière intervention25 avril 2009 20 sept. 2005 à 15:52
Salut,
Citt cumule le script client side avec une vérification avant enregistrement server side.
J'entend par la, un controle du type serveur mx.
Have Fun ;)
citt
Messages postés209Date d'inscriptiondimanche 8 juin 2003StatutMembreDernière intervention 9 février 20123 20 sept. 2005 à 15:02
Bonjour,
Malgré ta fonction, j'ai une ou des personne(s) qui ont reussi a passer en tapant ca
(je n'en ai qui partie car c'est ce qui figurer dans ma BDD) :
zerfz@sdsq.com type="MIME" enctype="multi etc ....
Je ne sais pas trop a quoi cela correspond mais en tout cas il a reussi a passer :(
apxa
Messages postés188Date d'inscriptionmercredi 15 mai 2002StatutMembreDernière intervention25 avril 2009 4 juil. 2005 à 17:16
Salut DLP,
Je te remerci pour cette petite remarque et la petite correction.
Have Fun ;)
DieuLePer
Messages postés5Date d'inscriptionsamedi 6 mars 2004StatutMembreDernière intervention 9 décembre 2004 4 juil. 2005 à 17:12
Bonjour,
Il semblerai qu'il y ai une ptite erreur dans le fichier form.html : à la ligne 156, la fonction verifEmail2() est appelée, or celle-ci n'existe pas. Merci de ne pas me crier dessus ("rester calme et courtois tout au long de vos échanges"), mais je pense que certains newbies n'utilisent pas ce script parce qu'ils ne comprennent pas pourquoi il ne marche pas...
Donc pour ceux qui n'avais pas compris, il faut simplement modifier la ligne 156 en :
function envoi() {
var theMail = document.frm.email.value;
if(verifEmail(theMail)) {
alert("Format OK");
//document.frm.submit();
} else {
alert("Le format de l'email est incorrect !")
}
}
Bon week-end
DieuLePer
Messages postés5Date d'inscriptionsamedi 6 mars 2004StatutMembreDernière intervention 9 décembre 2004 4 juil. 2005 à 17:10
Bonjour,
Il semblerai qu'il y ai une ptite erreur dans le fichier form.html : à la ligne 156, la fonction verifEmail2() est appelée, or celle-ci n'existe pas. Merci de ne pas me crier dessus ("rester calme et courtois tout au long de vos échanges"), mais je pense que certains newbies n'utilisent pas ce script parce qu'ils ne comprennent pas pourquoi il ne marche pas...
Donc pour ceux qui n'avais pas compris, il faut simplement modifier la ligne 156 en :
if(verifEmail(theMail)) {
Bon week-end
snooka
Messages postés15Date d'inscriptionsamedi 22 novembre 2003StatutMembreDernière intervention 2 août 2004 10 févr. 2004 à 14:26
Info les page du ZIP CONPORTE DES ERREUR
cs_drjee
Messages postés2Date d'inscriptionmercredi 12 novembre 2003StatutMembreDernière intervention26 novembre 2003 26 nov. 2003 à 11:34
Ok, u'r right, I cross-posted my functions, sorry for that...
But concerning this thread, the code of optitech is quite perfect, apxa !
Why writting a book as some lines can control a standard, simple email format that is x@x.x ?
In all cases a user who wants to provide a fake address will provide a fake address.... so please stop consuming the internet bandwidth with your best sellers dude... However, u've got a nice face....
apxa
Messages postés188Date d'inscriptionmercredi 15 mai 2002StatutMembreDernière intervention25 avril 2009 13 nov. 2003 à 12:12
Iop drjee
Are u ok ?
Cause your code test date format and not email format !
Wake up guy !
I dont know if u understand the title but this one mean:
"checking of the format of an address email"
It is probably the time decalage. :p
cs_drjee
Messages postés2Date d'inscriptionmercredi 12 novembre 2003StatutMembreDernière intervention26 novembre 2003 12 nov. 2003 à 17:55
I found this code quite good for a newbie, but be serious dudes, here is my functions that I transposed from the java.text.SimpleDateFormat class. You will be quiet in all situations with them ! They support all formats for comparison, conversion, etc. so apxa, your code is cool, but much efforts for nothing interesting !! take note dude !
// ------------------------------------------------------------------
// These functions use the same 'format' strings as the
// java.text.SimpleDateFormat class, with minor exceptions.
// The format string consists of the following abbreviations:
//
// Field | Full Form | Short Form
// -------------+--------------------+-----------------------
// Year | yyyy (4 digits) | yy (2 digits), y (2 or 4 digits)
// Month | MMM (name or abbr.)| MM (2 digits), M (1 or 2 digits)
// Day of Month | dd (2 digits) | d (1 or 2 digits)
// Hour (1-12) | hh (2 digits) | h (1 or 2 digits)
// Hour (0-23) | HH (2 digits) | H (1 or 2 digits)
// Hour (0-11) | KK (2 digits) | K (1 or 2 digits)
// Hour (1-24) | kk (2 digits) | k (1 or 2 digits)
// Minute | mm (2 digits) | m (1 or 2 digits)
// Second | ss (2 digits) | s (1 or 2 digits)
// AM/PM | a |
//
// NOTE THE DIFFERENCE BETWEEN MM and mm! Month=MM, not mm!
// Examples:
// "MMM d, y" matches: January 01, 2000
// Dec 1, 1900
// Nov 20, 00
// "M/d/yy" matches: 01/20/00
// 9/2/00
// "MMM dd, yyyy hh:mm:ssa" matches: "January 01, 2000 12:30:45AM"
// ------------------------------------------------------------------
var MONTH_NAMES=new Array('January','February','March','April','May','June','July','August','September','October','November','December','Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec');
function LZ(x) {return(x<0||x>9?"":"0")+x}
// ------------------------------------------------------------------
// isDate ( date_string, format_string )
// Returns true if date string matches format of format string and
// is a valid date. Else returns false.
// It is recommended that you trim whitespace around the value before
// passing it to this function, as whitespace is NOT ignored!
// ------------------------------------------------------------------
function isDate(val,format) {
var date=getDateFromFormat(val,format);
if (date==0) { return false; }
return true;
}
// -------------------------------------------------------------------
// compareDates(date1,date1format,date2,date2format)
// Compare two date strings to see which is greater.
// Returns:
// 1 if date1 is greater than date2
// 0 if date2 is greater than date1 of if they are the same
// -1 if either of the dates is in an invalid format
// -------------------------------------------------------------------
function compareDates(date1,dateformat1,date2,dateformat2) {
var d1=getDateFromFormat(date1,dateformat1);
var d2=getDateFromFormat(date2,dateformat2);
if (d1==0 || d2==0) {
return -1;
}
else if (d1 > d2) {
return 1;
}
return 0;
}
// ------------------------------------------------------------------
// formatDate (date_object, format)
// Returns a date in the output format specified.
// The format string uses the same abbreviations as in getDateFromFormat()
// ------------------------------------------------------------------
function formatDate(date,format) {
format=format+"";
var result="";
var i_format=0;
var c="";
var token="";
var y=date.getYear()+"";
var M=date.getMonth()+1;
var d=date.getDate();
var H=date.getHours();
var m=date.getMinutes();
var s=date.getSeconds();
var yyyy,yy,MMM,MM,dd,hh,h,mm,ss,ampm,HH,H,KK,K,kk,k;
// Convert real date parts into formatted versions
var value=new Object();
if (y.length < 4) {y=""+(y-0+1900);}
value["y"]=""+y;
value["yyyy"]=y;
value["yy"]=y.substring(2,4);
value["M"]=M;
value["MM"]=LZ(M);
value["MMM"]=MONTH_NAMES[M-1];
value["d"]=d;
value["dd"]=LZ(d);
value["H"]=H;
value["HH"]=LZ(H);
if (H==0){value["h"]=12;}
else if (H>12){value["h"]=H-12;}
else {value["h"]=H;}
value["hh"]=LZ(value["h"]);
if (H>11){value["K"]=H-12;} else {value["K"]=H;}
value["k"]=H+1;
value["KK"]=LZ(value["K"]);
value["kk"]=LZ(value["k"]);
if (H > 11) { value["a"]="PM"; }
else { value["a"]="AM"; }
value["m"]=m;
value["mm"]=LZ(m);
value["s"]=s;
value["ss"]=LZ(s);
while (i_format < format.length) {
c=format.charAt(i_format);
token="";
while ((format.charAt(i_format)==c) && (i_format < format.length)) {
token += format.charAt(i_format++);
}
if (value[token] != null) { result=result + value[token]; }
else { result=result + token; }
}
return result;
}
// ------------------------------------------------------------------
// Utility functions for parsing in getDateFromFormat()
// ------------------------------------------------------------------
function _isInteger(val) {
var digits="1234567890";
for (var i=0; i < val.length; i++) {
if (digits.indexOf(val.charAt(i))==-1) { return false; }
}
return true;
}
function _getInt(str,i,minlength,maxlength) {
for (var x=maxlength; x>=minlength; x--) {
var token=str.substring(i,i+x);
if (token.length < minlength) { return null; }
if (_isInteger(token)) { return token; }
}
return null;
}
// ------------------------------------------------------------------
// getDateFromFormat( date_string , format_string )
//
// This function takes a date string and a format string. It matches
// If the date string matches the format string, it returns the
// getTime() of the date. If it does not match, it returns 0.
// ------------------------------------------------------------------
function getDateFromFormat(val,format) {
val=val+"";
format=format+"";
var i_val=0;
var i_format=0;
var c="";
var token="";
var token2="";
var x,y;
var now=new Date();
var year=now.getYear();
var month=now.getMonth()+1;
var date=now.getDate();
var hh=now.getHours();
var mm=now.getMinutes();
var ss=now.getSeconds();
var ampm="";
while (i_format < format.length) {
// Get next token from format string
c=format.charAt(i_format);
token="";
while ((format.charAt(i_format)==c) && (i_format < format.length)) {
token += format.charAt(i_format++);
}
// Extract contents of value based on format token
if (token=="yyyy" || token=="yy" || token=="y") {
if (token=="yyyy") { x=4;y=4; }
if (token=="yy") { x=2;y=2; }
if (token=="y") { x=2;y=4; }
year=_getInt(val,i_val,x,y);
if (year==null) { return 0; }
i_val += year.length;
if (year.length==2) {
if (year > 70) { year=1900+(year-0); }
else { year=2000+(year-0); }
}
}
else if (token=="MMM"){
month=0;
for (var i=0; i<MONTH_NAMES.length; i++) {
var month_name=MONTH_NAMES[i];
if (val.substring(i_val,i_val+month_name.length).toLowerCase()==month_name.toLowerCase()) {
month=i+1;
if (month>12) { month -= 12; }
i_val += month_name.length;
break;
}
}
if ((month < 1)||(month>12)){return 0;}
}
else if (token=="MM"||token=="M") {
month=_getInt(val,i_val,token.length,2);
if(month==null||(month<1)||(month>12)){return 0;}
i_val+=month.length;}
else if (token=="dd"||token=="d") {
date=_getInt(val,i_val,token.length,2);
if(date==null||(date<1)||(date>31)){return 0;}
i_val+=date.length;}
else if (token=="hh"||token=="h") {
hh=_getInt(val,i_val,token.length,2);
if(hh==null||(hh<1)||(hh>12)){return 0;}
i_val+=hh.length;}
else if (token=="HH"||token=="H") {
hh=_getInt(val,i_val,token.length,2);
if(hh==null||(hh<0)||(hh>23)){return 0;}
i_val+=hh.length;}
else if (token=="KK"||token=="K") {
hh=_getInt(val,i_val,token.length,2);
if(hh==null||(hh<0)||(hh>11)){return 0;}
i_val+=hh.length;}
else if (token=="kk"||token=="k") {
hh=_getInt(val,i_val,token.length,2);
if(hh==null||(hh<1)||(hh>24)){return 0;}
i_val+=hh.length;hh--;}
else if (token=="mm"||token=="m") {
mm=_getInt(val,i_val,token.length,2);
if(mm==null||(mm<0)||(mm>59)){return 0;}
i_val+=mm.length;}
else if (token=="ss"||token=="s") {
ss=_getInt(val,i_val,token.length,2);
if(ss==null||(ss<0)||(ss>59)){return 0;}
i_val+=ss.length;}
else if (token=="a") {
if (val.substring(i_val,i_val+2).toLowerCase()=="am") {ampm="AM";}
else if (val.substring(i_val,i_val+2).toLowerCase()=="pm") {ampm="PM";}
else {return 0;}
i_val+=2;}
else {
if (val.substring(i_val,i_val+token.length)!=token) {return 0;}
else {i_val+=token.length;}
}
}
// If there are any trailing characters left in the value, it doesn't match
if (i_val != val.length) { return 0; }
// Is date valid for month?
if (month==2) {
// Check for leap year
if ( ( (year%4==0)&&(year%100 != 0) ) || (year%400==0) ) { // leap year
if (date > 29){ return false; }
}
else { if (date > 28) { return false; } }
}
if ((month==4)||(month==6)||(month==9)||(month==11)) {
if (date > 30) { return false; }
}
// Correct hours value
if (hh<12 && ampm=="PM") { hh+=12; }
else if (hh>11 && ampm=="AM") { hh-=12; }
var newdate=new Date(year,month-1,date,hh,mm,ss);
return newdate.getTime();
}
cs_samgoa
Messages postés8Date d'inscriptionlundi 30 juin 2003StatutMembreDernière intervention 4 juillet 2003 4 juil. 2003 à 09:33
apxa
Messages postés188Date d'inscriptionmercredi 15 mai 2002StatutMembreDernière intervention25 avril 2009 3 juil. 2003 à 12:14
c'est vrai dsl...
cs_aGlaGla
Messages postés1Date d'inscriptionmercredi 7 mai 2003StatutMembreDernière intervention 3 juillet 2003 3 juil. 2003 à 12:08
Effectivement c surement bien coder :) Mais qu'est ce sa peu manquer de commentaires :s
cs_samgoa
Messages postés8Date d'inscriptionlundi 30 juin 2003StatutMembreDernière intervention 4 juillet 2003 30 juin 2003 à 15:35
Promis, dès que j'ai fini la mienne (de procedure de teste d'e-mail). Je la poste et j'attend les commentaires.
Optitech
Messages postés134Date d'inscriptionsamedi 19 octobre 2002StatutMembreDernière intervention 3 janvier 2009 22 avril 2003 à 19:09
Bien dit pyroflo ! ! !
pyroflo
Messages postés323Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention17 mai 2005 22 avril 2003 à 16:53
Mouais bon allez STOP !!! Et vive la prog. ;)
apxa
Messages postés188Date d'inscriptionmercredi 15 mai 2002StatutMembreDernière intervention25 avril 2009 22 avril 2003 à 15:30
lol ui c'est vrai c'est pas l'endroit ;)
ByanSpinder
Messages postés4Date d'inscriptionmercredi 18 septembre 2002StatutMembreDernière intervention22 avril 2003 22 avril 2003 à 15:18
En réponse aux accusations !
Non je ne critique pas négativement. Le travail des autres est très instructif. Et si vous prenez la phrase "trouve cela un peu idiot" au premier degré c'est pas de ma faute. Il est vrai que je n'ai pas tester cela sous sous mac, là j'en suis désolé! Car (je ne suis pas contre non plus) je n'aime pas trop mac. Mais il est vrai que pour que cela marche sur tout web browser, il faut tester! Pour ma part, je ne construit pas de site internet mais que des intranet fonctionnant sous ie PC.
Pas la peine de créer une guerre entre infos, on en a assez avec Saddam et W. Bush.
Allez a+
apxa
Messages postés188Date d'inscriptionmercredi 15 mai 2002StatutMembreDernière intervention25 avril 2009 22 avril 2003 à 15:04
Pyroflo,
je respect tout à fait le travail des autres mais je ne support pas les commentaires à la va vite.
Sans prises en considération des commentaires précédement inscrite.
De plus ce code n'a rien de très avancés.
L'avantage c'est qu'il fonctionne par tout (test non effectuer sous opéra).
De plus je ne suis pas contre des sources identiques mais alors que le gars le post sous son pseudo et non sous le mien.
Car ca je trouve c'est un peu comme de la flambe ("moi je sais faire plus court, moi je sais faire plus simple...") et derrière il n'y a aucune vérification.
Les gars se contente de balancer le code qu'ils viennent d'apprendre en pensant qu'ils ont affaire à un concours.
Hors le but et comme même de fournir des sources qui fonctionnent quelques soit l'utilisation qu'on en fait.
D'où ma froideur dans mes remarque... je sais trop bien comment fonctionne les comments code sources déposées ici. et en majorité elle n'ont rien de constructives.
pyroflo
Messages postés323Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention17 mai 2005 22 avril 2003 à 00:43
ooooooooo les gars on se calme là !!!
apxa je peux pas juger ton code puisque je ne sais pas le faire mais je trouve que mépriser quelqu'un comme tu l'as fait avec Optitech n'est vraiment pas correct !!! A chacun son niveau, plus ou moins élevé. Et même si on est un "newbee" on a le droit de s'exprimer en postant pourquoi pas des sources du même style que la tienne. Tu ne te souviens pas quand tu as commencé à programmer ?
Alors au lieu de te la jouer grand programmeur (que tu es peut être) respecte un peu les autres ça ne te fera pas de mal...
apxa
Messages postés188Date d'inscriptionmercredi 15 mai 2002StatutMembreDernière intervention25 avril 2009 17 févr. 2003 à 12:37
J'ai tester ton code et escuse moi mais t@t.f, ..titi.@c.f, t@@t.f@, ne sont po des format d'email valide donc VA APPRENDRE A PROGRAMMEZ !!!
C'est honteux de ta part de poser ce commentaire dans mon code !!
Je n'ai meme pas osé pousser mes tests avec ton code...
Je sais pas si tu sais lire mais y a une remarque en haut !
Optitech
Messages postés134Date d'inscriptionsamedi 19 octobre 2002StatutMembreDernière intervention 3 janvier 2009 17 févr. 2003 à 11:27
VOICI UN VERIFICATEUR DU FORMAT DE L'EMAIL BEAUCOUP PLUS SIMPLE QUE LE TIENT !!!!!
<html><head><title>Valider une adresse e-mail</title>
<script language = "JavaScript">
<!-- hide me
function verifierEmail(adresse_email)
{
var arobase = adresse_email.indexOf("@");
var point_adresse = adresse_email.lastIndexOf(".");
var espace = adresse_email.indexOf(" ");
if ((arobase != -1) && // présence de '@'
(arobase != 0) && // à une position autre que 0
(point_adresse != -1) && // présence d'un '.'
(point_adresse > arobase + 1) && // et de qqchose entre '@' et '.'
(point_adresse < adresse_email.length - 1) && // et de qqchose après de '.'
(espace == -1)) // pas d'espaces
{
alert("L'adresse e-mail est valide !");
return true;
} else {
alert("L'adresse e-mail est erronée !");
return false;
}
}
// show me -->
</script>
</head>
crapulemaster
Messages postés1Date d'inscriptionvendredi 14 février 2003StatutMembreDernière intervention14 février 2003 14 févr. 2003 à 12:40
En réponse à tous
Même si titi roule dans une caisse de vieux, il est bon programmeur
Celui qui touche à titi aura à faire à son maître crapulien incontesté....la crapule master !!
cs_erika
Messages postés1Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention13 février 2003 13 févr. 2003 à 19:36
En réponse a Byan Spinder:
le jour où tu arrivera à faire le quart de ce que titi arrive a faire tu pourra te permettre de faire un commentaire, en attendant tu prend tes bouquins et t'apprend à programmer !
De plus, tu te permet de dire que tu "trouve cela un peu idiot" , moi je trouve ça encore plus idiot un mec qui se permet de faire un commentaire négatif sur un code alors qu'il ne serait même pas capable de le faire ce code soit disant "idiot".
Pour résumé : laisse faire les pro!
Ps: Titi t'es le meilleure, tu l'as toujours été et tu le seras toujours!
cs_PereNoel
Messages postés68Date d'inscriptionmardi 31 décembre 2002StatutMembreDernière intervention 2 mai 2004 13 févr. 2003 à 19:03
Houlala ! Ca vanne sec dans le coin ! mdrrrr
HEproduct
Messages postés23Date d'inscriptionmardi 18 décembre 2001StatutMembreDernière intervention19 mars 2003 13 févr. 2003 à 10:39
lol Apxa T le meilleur :) hé hé Bravo !!!!
apxa
Messages postés188Date d'inscriptionmercredi 15 mai 2002StatutMembreDernière intervention25 avril 2009 7 févr. 2003 à 16:14
ByanSpinder essaye de faire tourner ton regExp sous ie5 de mac et reviens me faire tes commentaires après merci.
ByanSpinder
Messages postés4Date d'inscriptionmercredi 18 septembre 2002StatutMembreDernière intervention22 avril 2003 7 févr. 2003 à 13:36
Je ne veux pas te vexer mais je trouve cela un peu idiot, car il existe les RegExp qui raccourcirai considérablement ton code!
Code:
var e=New regExp('^[a-z,A-Z,0-9,-,.]{1,}@[a-z,A-Z,0-9,-,.]{1,}.[a-z,A-Z]{3}');
if(!e.test(tonmailatester)){return(false);}
voilà c'est tout
HEproduct
Messages postés23Date d'inscriptionmardi 18 décembre 2001StatutMembreDernière intervention19 mars 2003 6 févr. 2003 à 20:28
loool :) miciii mon titi hé hé trés bon ton code,
Voilà comment en 5 minutes on fé une bonne vérif de mail les zamis c le temps k'a mi Apxa à nous pondre ce code alors soyer un peu moins raleur pour une fois et fêtes pareill loool :)
AngelWide
5 juin 2009 à 13:37
voici une méthode (pas encore finalisé) pour tester un mail via PEAR :
Bonne journée
5 juin 2009 à 13:28
A l'époque où j'ai posé la source les expr reg n'étaient pas vraiement au point sur tous les navigateurs.
Ceci dit maintenant ce n'est plus la cas on peut effectivement faire une bonne expr reg pour cela.
si j'ai le temps j'en poserais une. Completer ce contrôle du coté serveur peut aussi s'avérer très utile pour la validité des domaines ou IP.
Essayes d'inclure dans ta regexp ce cas la : email@10.24.134.17
Have Fun ;)
5 juin 2009 à 10:54
Merci pour la source, mais une petite question persiste,
Lorsque j'essaie de renseigner ce type de mail < toto@toto.nccsd >, le mail est validé, alors que jusqu'à aujourd'hui il n'est pas possible de renseigner un suffixe de plus de trois caractères.
Donc $regexp = "^([_a-z0-9-]+)(\.[_a-z0-9-]+)*@([a-z0-9-]+)(\.[a-z0-9-]+)*(\.[a-z]{2,4})$"; (désolé) mais cela à le mérite de fonctionner.
Bonne journée
2 mai 2007 à 14:55
Si vraiment on veut titiller jusqu'au bout la vérif...
Je suis peut-etre bigleu mais, je n'ai pas vu dans ton code de vérification de la longueur maximale de l'email, car il me semble bien que cette longueur est limitée !
Ainsi, si je rentre une email valide mais de 5000 caracteres dans ta vérif, elle va passer, a moins encore une fois , que j'ai raté qqch lol ;)
2 mai 2007 à 13:22
Bravo ^^
19 janv. 2007 à 20:22
20 sept. 2005 à 15:52
Citt cumule le script client side avec une vérification avant enregistrement server side.
J'entend par la, un controle du type serveur mx.
Have Fun ;)
20 sept. 2005 à 15:02
Malgré ta fonction, j'ai une ou des personne(s) qui ont reussi a passer en tapant ca
(je n'en ai qui partie car c'est ce qui figurer dans ma BDD) :
zerfz@sdsq.com type="MIME" enctype="multi etc ....
Je ne sais pas trop a quoi cela correspond mais en tout cas il a reussi a passer :(
4 juil. 2005 à 17:16
Je te remerci pour cette petite remarque et la petite correction.
Have Fun ;)
4 juil. 2005 à 17:12
Il semblerai qu'il y ai une ptite erreur dans le fichier form.html : à la ligne 156, la fonction verifEmail2() est appelée, or celle-ci n'existe pas. Merci de ne pas me crier dessus ("rester calme et courtois tout au long de vos échanges"), mais je pense que certains newbies n'utilisent pas ce script parce qu'ils ne comprennent pas pourquoi il ne marche pas...
Donc pour ceux qui n'avais pas compris, il faut simplement modifier la ligne 156 en :
function envoi() {
var theMail = document.frm.email.value;
if(verifEmail(theMail)) {
alert("Format OK");
//document.frm.submit();
} else {
alert("Le format de l'email est incorrect !")
}
}
Bon week-end
4 juil. 2005 à 17:10
Il semblerai qu'il y ai une ptite erreur dans le fichier form.html : à la ligne 156, la fonction verifEmail2() est appelée, or celle-ci n'existe pas. Merci de ne pas me crier dessus ("rester calme et courtois tout au long de vos échanges"), mais je pense que certains newbies n'utilisent pas ce script parce qu'ils ne comprennent pas pourquoi il ne marche pas...
Donc pour ceux qui n'avais pas compris, il faut simplement modifier la ligne 156 en :
if(verifEmail(theMail)) {
Bon week-end
10 févr. 2004 à 14:26
26 nov. 2003 à 11:34
But concerning this thread, the code of optitech is quite perfect, apxa !
Why writting a book as some lines can control a standard, simple email format that is x@x.x ?
In all cases a user who wants to provide a fake address will provide a fake address.... so please stop consuming the internet bandwidth with your best sellers dude... However, u've got a nice face....
13 nov. 2003 à 12:12
Are u ok ?
Cause your code test date format and not email format !
Wake up guy !
I dont know if u understand the title but this one mean:
"checking of the format of an address email"
It is probably the time decalage. :p
12 nov. 2003 à 17:55
// ------------------------------------------------------------------
// These functions use the same 'format' strings as the
// java.text.SimpleDateFormat class, with minor exceptions.
// The format string consists of the following abbreviations:
//
// Field | Full Form | Short Form
// -------------+--------------------+-----------------------
// Year | yyyy (4 digits) | yy (2 digits), y (2 or 4 digits)
// Month | MMM (name or abbr.)| MM (2 digits), M (1 or 2 digits)
// Day of Month | dd (2 digits) | d (1 or 2 digits)
// Hour (1-12) | hh (2 digits) | h (1 or 2 digits)
// Hour (0-23) | HH (2 digits) | H (1 or 2 digits)
// Hour (0-11) | KK (2 digits) | K (1 or 2 digits)
// Hour (1-24) | kk (2 digits) | k (1 or 2 digits)
// Minute | mm (2 digits) | m (1 or 2 digits)
// Second | ss (2 digits) | s (1 or 2 digits)
// AM/PM | a |
//
// NOTE THE DIFFERENCE BETWEEN MM and mm! Month=MM, not mm!
// Examples:
// "MMM d, y" matches: January 01, 2000
// Dec 1, 1900
// Nov 20, 00
// "M/d/yy" matches: 01/20/00
// 9/2/00
// "MMM dd, yyyy hh:mm:ssa" matches: "January 01, 2000 12:30:45AM"
// ------------------------------------------------------------------
var MONTH_NAMES=new Array('January','February','March','April','May','June','July','August','September','October','November','December','Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec');
function LZ(x) {return(x<0||x>9?"":"0")+x}
// ------------------------------------------------------------------
// isDate ( date_string, format_string )
// Returns true if date string matches format of format string and
// is a valid date. Else returns false.
// It is recommended that you trim whitespace around the value before
// passing it to this function, as whitespace is NOT ignored!
// ------------------------------------------------------------------
function isDate(val,format) {
var date=getDateFromFormat(val,format);
if (date==0) { return false; }
return true;
}
// -------------------------------------------------------------------
// compareDates(date1,date1format,date2,date2format)
// Compare two date strings to see which is greater.
// Returns:
// 1 if date1 is greater than date2
// 0 if date2 is greater than date1 of if they are the same
// -1 if either of the dates is in an invalid format
// -------------------------------------------------------------------
function compareDates(date1,dateformat1,date2,dateformat2) {
var d1=getDateFromFormat(date1,dateformat1);
var d2=getDateFromFormat(date2,dateformat2);
if (d1==0 || d2==0) {
return -1;
}
else if (d1 > d2) {
return 1;
}
return 0;
}
// ------------------------------------------------------------------
// formatDate (date_object, format)
// Returns a date in the output format specified.
// The format string uses the same abbreviations as in getDateFromFormat()
// ------------------------------------------------------------------
function formatDate(date,format) {
format=format+"";
var result="";
var i_format=0;
var c="";
var token="";
var y=date.getYear()+"";
var M=date.getMonth()+1;
var d=date.getDate();
var H=date.getHours();
var m=date.getMinutes();
var s=date.getSeconds();
var yyyy,yy,MMM,MM,dd,hh,h,mm,ss,ampm,HH,H,KK,K,kk,k;
// Convert real date parts into formatted versions
var value=new Object();
if (y.length < 4) {y=""+(y-0+1900);}
value["y"]=""+y;
value["yyyy"]=y;
value["yy"]=y.substring(2,4);
value["M"]=M;
value["MM"]=LZ(M);
value["MMM"]=MONTH_NAMES[M-1];
value["d"]=d;
value["dd"]=LZ(d);
value["H"]=H;
value["HH"]=LZ(H);
if (H==0){value["h"]=12;}
else if (H>12){value["h"]=H-12;}
else {value["h"]=H;}
value["hh"]=LZ(value["h"]);
if (H>11){value["K"]=H-12;} else {value["K"]=H;}
value["k"]=H+1;
value["KK"]=LZ(value["K"]);
value["kk"]=LZ(value["k"]);
if (H > 11) { value["a"]="PM"; }
else { value["a"]="AM"; }
value["m"]=m;
value["mm"]=LZ(m);
value["s"]=s;
value["ss"]=LZ(s);
while (i_format < format.length) {
c=format.charAt(i_format);
token="";
while ((format.charAt(i_format)==c) && (i_format < format.length)) {
token += format.charAt(i_format++);
}
if (value[token] != null) { result=result + value[token]; }
else { result=result + token; }
}
return result;
}
// ------------------------------------------------------------------
// Utility functions for parsing in getDateFromFormat()
// ------------------------------------------------------------------
function _isInteger(val) {
var digits="1234567890";
for (var i=0; i < val.length; i++) {
if (digits.indexOf(val.charAt(i))==-1) { return false; }
}
return true;
}
function _getInt(str,i,minlength,maxlength) {
for (var x=maxlength; x>=minlength; x--) {
var token=str.substring(i,i+x);
if (token.length < minlength) { return null; }
if (_isInteger(token)) { return token; }
}
return null;
}
// ------------------------------------------------------------------
// getDateFromFormat( date_string , format_string )
//
// This function takes a date string and a format string. It matches
// If the date string matches the format string, it returns the
// getTime() of the date. If it does not match, it returns 0.
// ------------------------------------------------------------------
function getDateFromFormat(val,format) {
val=val+"";
format=format+"";
var i_val=0;
var i_format=0;
var c="";
var token="";
var token2="";
var x,y;
var now=new Date();
var year=now.getYear();
var month=now.getMonth()+1;
var date=now.getDate();
var hh=now.getHours();
var mm=now.getMinutes();
var ss=now.getSeconds();
var ampm="";
while (i_format < format.length) {
// Get next token from format string
c=format.charAt(i_format);
token="";
while ((format.charAt(i_format)==c) && (i_format < format.length)) {
token += format.charAt(i_format++);
}
// Extract contents of value based on format token
if (token=="yyyy" || token=="yy" || token=="y") {
if (token=="yyyy") { x=4;y=4; }
if (token=="yy") { x=2;y=2; }
if (token=="y") { x=2;y=4; }
year=_getInt(val,i_val,x,y);
if (year==null) { return 0; }
i_val += year.length;
if (year.length==2) {
if (year > 70) { year=1900+(year-0); }
else { year=2000+(year-0); }
}
}
else if (token=="MMM"){
month=0;
for (var i=0; i<MONTH_NAMES.length; i++) {
var month_name=MONTH_NAMES[i];
if (val.substring(i_val,i_val+month_name.length).toLowerCase()==month_name.toLowerCase()) {
month=i+1;
if (month>12) { month -= 12; }
i_val += month_name.length;
break;
}
}
if ((month < 1)||(month>12)){return 0;}
}
else if (token=="MM"||token=="M") {
month=_getInt(val,i_val,token.length,2);
if(month==null||(month<1)||(month>12)){return 0;}
i_val+=month.length;}
else if (token=="dd"||token=="d") {
date=_getInt(val,i_val,token.length,2);
if(date==null||(date<1)||(date>31)){return 0;}
i_val+=date.length;}
else if (token=="hh"||token=="h") {
hh=_getInt(val,i_val,token.length,2);
if(hh==null||(hh<1)||(hh>12)){return 0;}
i_val+=hh.length;}
else if (token=="HH"||token=="H") {
hh=_getInt(val,i_val,token.length,2);
if(hh==null||(hh<0)||(hh>23)){return 0;}
i_val+=hh.length;}
else if (token=="KK"||token=="K") {
hh=_getInt(val,i_val,token.length,2);
if(hh==null||(hh<0)||(hh>11)){return 0;}
i_val+=hh.length;}
else if (token=="kk"||token=="k") {
hh=_getInt(val,i_val,token.length,2);
if(hh==null||(hh<1)||(hh>24)){return 0;}
i_val+=hh.length;hh--;}
else if (token=="mm"||token=="m") {
mm=_getInt(val,i_val,token.length,2);
if(mm==null||(mm<0)||(mm>59)){return 0;}
i_val+=mm.length;}
else if (token=="ss"||token=="s") {
ss=_getInt(val,i_val,token.length,2);
if(ss==null||(ss<0)||(ss>59)){return 0;}
i_val+=ss.length;}
else if (token=="a") {
if (val.substring(i_val,i_val+2).toLowerCase()=="am") {ampm="AM";}
else if (val.substring(i_val,i_val+2).toLowerCase()=="pm") {ampm="PM";}
else {return 0;}
i_val+=2;}
else {
if (val.substring(i_val,i_val+token.length)!=token) {return 0;}
else {i_val+=token.length;}
}
}
// If there are any trailing characters left in the value, it doesn't match
if (i_val != val.length) { return 0; }
// Is date valid for month?
if (month==2) {
// Check for leap year
if ( ( (year%4==0)&&(year%100 != 0) ) || (year%400==0) ) { // leap year
if (date > 29){ return false; }
}
else { if (date > 28) { return false; } }
}
if ((month==4)||(month==6)||(month==9)||(month==11)) {
if (date > 30) { return false; }
}
// Correct hours value
if (hh<12 && ampm=="PM") { hh+=12; }
else if (hh>11 && ampm=="AM") { hh-=12; }
var newdate=new Date(year,month-1,date,hh,mm,ss);
return newdate.getTime();
}
4 juil. 2003 à 09:33
http://www.javascriptfr.com/article.aspx?Val=631
Soyez indulgent, c'est 'my first function'.
3 juil. 2003 à 12:14
3 juil. 2003 à 12:08
30 juin 2003 à 15:35
22 avril 2003 à 19:09
22 avril 2003 à 16:53
22 avril 2003 à 15:30
22 avril 2003 à 15:18
Non je ne critique pas négativement. Le travail des autres est très instructif. Et si vous prenez la phrase "trouve cela un peu idiot" au premier degré c'est pas de ma faute. Il est vrai que je n'ai pas tester cela sous sous mac, là j'en suis désolé! Car (je ne suis pas contre non plus) je n'aime pas trop mac. Mais il est vrai que pour que cela marche sur tout web browser, il faut tester! Pour ma part, je ne construit pas de site internet mais que des intranet fonctionnant sous ie PC.
Pas la peine de créer une guerre entre infos, on en a assez avec Saddam et W. Bush.
Allez a+
22 avril 2003 à 15:04
je respect tout à fait le travail des autres mais je ne support pas les commentaires à la va vite.
Sans prises en considération des commentaires précédement inscrite.
De plus ce code n'a rien de très avancés.
L'avantage c'est qu'il fonctionne par tout (test non effectuer sous opéra).
De plus je ne suis pas contre des sources identiques mais alors que le gars le post sous son pseudo et non sous le mien.
Car ca je trouve c'est un peu comme de la flambe ("moi je sais faire plus court, moi je sais faire plus simple...") et derrière il n'y a aucune vérification.
Les gars se contente de balancer le code qu'ils viennent d'apprendre en pensant qu'ils ont affaire à un concours.
Hors le but et comme même de fournir des sources qui fonctionnent quelques soit l'utilisation qu'on en fait.
D'où ma froideur dans mes remarque... je sais trop bien comment fonctionne les comments code sources déposées ici. et en majorité elle n'ont rien de constructives.
22 avril 2003 à 00:43
apxa je peux pas juger ton code puisque je ne sais pas le faire mais je trouve que mépriser quelqu'un comme tu l'as fait avec Optitech n'est vraiment pas correct !!! A chacun son niveau, plus ou moins élevé. Et même si on est un "newbee" on a le droit de s'exprimer en postant pourquoi pas des sources du même style que la tienne. Tu ne te souviens pas quand tu as commencé à programmer ?
Alors au lieu de te la jouer grand programmeur (que tu es peut être) respecte un peu les autres ça ne te fera pas de mal...
17 févr. 2003 à 12:37
C'est honteux de ta part de poser ce commentaire dans mon code !!
Je n'ai meme pas osé pousser mes tests avec ton code...
Je sais pas si tu sais lire mais y a une remarque en haut !
17 févr. 2003 à 11:27
<html><head><title>Valider une adresse e-mail</title>
<script language = "JavaScript">
<!-- hide me
function verifierEmail(adresse_email)
{
var arobase = adresse_email.indexOf("@");
var point_adresse = adresse_email.lastIndexOf(".");
var espace = adresse_email.indexOf(" ");
if ((arobase != -1) && // présence de '@'
(arobase != 0) && // à une position autre que 0
(point_adresse != -1) && // présence d'un '.'
(point_adresse > arobase + 1) && // et de qqchose entre '@' et '.'
(point_adresse < adresse_email.length - 1) && // et de qqchose après de '.'
(espace == -1)) // pas d'espaces
{
alert("L'adresse e-mail est valide !");
return true;
} else {
alert("L'adresse e-mail est erronée !");
return false;
}
}
// show me -->
</script>
</head>
<form method="POST" action="#"
onSubmit "var result verifierEmail(this.champ_email.value); return result;">
Adresse e-mail :
</form>
</html>
A+
14 févr. 2003 à 12:40
Même si titi roule dans une caisse de vieux, il est bon programmeur
Celui qui touche à titi aura à faire à son maître crapulien incontesté....la crapule master !!
13 févr. 2003 à 19:36
le jour où tu arrivera à faire le quart de ce que titi arrive a faire tu pourra te permettre de faire un commentaire, en attendant tu prend tes bouquins et t'apprend à programmer !
De plus, tu te permet de dire que tu "trouve cela un peu idiot" , moi je trouve ça encore plus idiot un mec qui se permet de faire un commentaire négatif sur un code alors qu'il ne serait même pas capable de le faire ce code soit disant "idiot".
Pour résumé : laisse faire les pro!
Ps: Titi t'es le meilleure, tu l'as toujours été et tu le seras toujours!
13 févr. 2003 à 19:03
13 févr. 2003 à 10:39
7 févr. 2003 à 16:14
7 févr. 2003 à 13:36
Code:
var e=New regExp('^[a-z,A-Z,0-9,-,.]{1,}@[a-z,A-Z,0-9,-,.]{1,}.[a-z,A-Z]{3}');
if(!e.test(tonmailatester)){return(false);}
voilà c'est tout
6 févr. 2003 à 20:28
Voilà comment en 5 minutes on fé une bonne vérif de mail les zamis c le temps k'a mi Apxa à nous pondre ce code alors soyer un peu moins raleur pour une fois et fêtes pareill loool :)
AngelWide