User registration problem

Permalink
I have a user trying to register that keeps getting "invalid email" error. They were able to register with a fake email address, and when I went in as admin to edit the user and put in their correct email, I get the same error.

Since the system doesn't truly verify email, and I can put in a bogus email address, where/why does this occur?

their email format is firstnamelastname@q.com

any idea where I can verify, update, check this?

 
elyon replied on at Permalink Reply
elyon
I've gotten errors in the past when I tried to add two users using the same email. Is it possible that they have already registered, or do you think that it is the single letter domain name that is causing the error (accidentally)? Would his email work if it went to qwest.com instead of q.com?
redhawk replied on at Permalink Reply
Thanks for the response. No they have never registered before. and your question about single character domain got me to thinking. I did and edit user and added the email with the qwest.com domain and it worked. Seems like the single character issue may be a but. it is a valid domain.

Thanks, I'll put this out to the bug reports.
elyon replied on at Permalink Reply
elyon
I had no idea that there was such a thing as single character domains. I wonder how much that costs them?

Glad its working now!
redhawk replied on at Permalink Reply
Actually, it's not working. The issue remains but I can just let people with single-character-dot email addresses know to put in a bogus one or use a different one. Pretty sure it's just the registration page checking something it didn't expect. Put in a bug report, hopefully someone has a fix.
redhawk replied on at Permalink Reply
Got a response from okhayat so wanted to give his fix here to be continued in this thread:

okhayat has posted to a discussion you're monitoring:

Subject:
Regex issue

Message:
Line 31 in concrete/helpers/validation/strings.php has the regular expression that validates the email.
<?php
return eregi("^[_\.0-9a-zA-Z-]+@([0-9a-zA-Z][0-9a-zA-Z-]+\.)+[a-zA-Z]{2,6}$", $em); ?>
Simply change the plus sign in ([0-9a-zA-Z][0-9a-zA-Z-]+\.) to a *, to become ([0-9a-zA-Z][0-9a-zA-Z-]*\.), which means the second letter isn't mandatory.

Explanation:
------------
The second part after the @ sign, between the braces ([0-9a-zA-Z][0-9a-zA-Z-]+\.) dictates that the domain name should be at least 2 alpha-numeric string.
First letter: 0-9 or a-z or A-Z
Second letter: 0-9 or a-z or A-Z or -
The + (plus sign) after the second set (between square brackets []) means there must be at least a second letter or more.
You can do one of two things as a temporary fix:
1. Change the plus sign in the braces to a * like this:
([0-9a-zA-Z][0-9a-zA-Z-]*\.)
2. Remove the second set and make it
([0-9a-zA-Z]+\.)

Hope this helps.
Tony replied on at Permalink Reply
Tony
added to the dev. should be released in 5.3.3.1
redhawk replied on at Permalink Reply
Just FYI and something to consider also. Should probably add date validation for user attributes. Having people put in text for their birthdays when they register. usually women, something like "within the last century" or "none of your business" etc. etc.
frz replied on at Permalink Reply
frz
check out the options of the date custom attribute in 5.3.3.1
redhawk replied on at Permalink Reply
Unfortunately, I've been unable to install 5.3.3 either as an upgrade or a fresh install. Posted the errors but never got it resolved. Mostly mysql errors. If this is a new update/fix I'll download and try again.

Thanks