diff --git a/docs/gotcha.txt b/docs/gotcha.txt index e52d689cb..f4c25d6fe 100644 --- a/docs/gotcha.txt +++ b/docs/gotcha.txt @@ -7,6 +7,10 @@ upgrading from one version to the next, or even between multiple versions. Be sure to heed the warnings contained herein as they will save you many hours of grief. +7.9.6 +-------------------------------------------------------------------- + * The javascript check for email addresses has been removed. + 7.9.5 -------------------------------------------------------------------- * Starting in WebGUI 7.9.4, the CHI and Cache::FastMmap modules are required. diff --git a/lib/WebGUI/Form/Email.pm b/lib/WebGUI/Form/Email.pm index a16ab6925..907796d2f 100644 --- a/lib/WebGUI/Form/Email.pm +++ b/lib/WebGUI/Form/Email.pm @@ -99,20 +99,4 @@ sub isDynamicCompatible { return 1; } -#------------------------------------------------------------------- - -=head2 toHtml ( ) - -Renders an email address field. - -=cut - -sub toHtml { - my $self = shift; - $self->session->style->setScript($self->session->url->extras('emailCheck.js'),{ type=>'text/javascript' }); - $self->{_params}{extras} .= ' onchange="emailCheck(this.value)" '; - return $self->SUPER::toHtml; -} - 1; - diff --git a/www/extras/emailCheck.js b/www/extras/emailCheck.js deleted file mode 100644 index 00372f525..000000000 --- a/www/extras/emailCheck.js +++ /dev/null @@ -1,155 +0,0 @@ -function emailCheck (emailStr) { - -/* The following variable tells the rest of the function whether or not -to verify that the address ends in a two-letter country or well-known -TLD. 1 means check it, 0 means don't. */ - -var checkTLD=1; - -/* The following is the list of known TLDs that an e-mail address must end with. */ - -var knownDomsPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum|mobi)$/i; - -/* The following pattern is used to check if the entered e-mail address -fits the user@domain format. It also is used to separate the username -from the domain. */ - -var emailPat=/^(.+)@(.+)$/; - -/* The following string represents the pattern for matching all special -characters. We don't want to allow special characters in the address. -These characters include ( ) < > @ , ; : \ " . [ ] */ - -var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]"; - -/* The following string represents the range of characters allowed in a -username or domainname. It really states which chars aren't allowed.*/ - -var validChars="\[^\\s" + specialChars + "\]"; - -/* The following pattern applies if the "user" is a quoted string (in -which case, there are no rules about which characters are allowed -and which aren't; anything goes). E.g. "jiminy cricket"@disney.com -is a legal e-mail address. */ - -var quotedUser="(\"[^\"]*\")"; - -/* The following pattern applies for domains that are IP addresses, -rather than symbolic names. E.g. joe@[123.124.233.4] is a legal -e-mail address. NOTE: The square brackets are required. */ - -var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/; - -/* The following string represents an atom (basically a series of non-special characters.) */ - -var atom=validChars + '+'; - -/* The following string represents one word in the typical username. -For example, in john.doe@somewhere.com, john and doe are words. -Basically, a word is either an atom or quoted string. */ - -var word="(" + atom + "|" + quotedUser + ")"; - -// The following pattern describes the structure of the user - -var userPat=new RegExp("^" + word + "(\\." + word + ")*$"); - -/* The following pattern describes the structure of a normal symbolic -domain, as opposed to ipDomainPat, shown above. */ - -var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$"); - -/* Finally, let's start trying to figure out if the supplied address is valid. */ - -/* Begin with the coarse pattern to simply break up user@domain into -different pieces that are easy to analyze. */ - -var matchArray=emailStr.match(emailPat); - -if (matchArray==null) { - -/* Too many/few @'s or something; basically, this address doesn't -even fit the general mould of a valid e-mail address. */ - -alert("Email address seems incorrect (check @ and .'s)"); -return false; -} -var user=matchArray[1]; -var domain=matchArray[2]; - -// Start by checking that only basic ASCII characters are in the strings (0-127). - -for (i=0; i127) { -alert("Ths username contains invalid characters."); -return false; - } -} -for (i=0; i127) { -alert("Ths domain name contains invalid characters."); -return false; - } -} - -// See if "user" is valid - -if (user.match(userPat)==null) { - -// user is not valid - -alert("The username doesn't seem to be valid."); -return false; -} - -/* if the e-mail address is at an IP address (as opposed to a symbolic -host name) make sure the IP address is valid. */ - -var IPArray=domain.match(ipDomainPat); -if (IPArray!=null) { - -// this is an IP address - -for (var i=1;i<=4;i++) { -if (IPArray[i]>255) { -alert("Destination IP address is invalid!"); -return false; - } -} -return true; -} - -// Domain is symbolic name. Check if it's valid. - -var atomPat=new RegExp("^" + atom + "$"); -var domArr=domain.split("."); -var len=domArr.length; -for (i=0;i