SMF Development > Feature Requests

Remove extra periods from Gmail addresses

<< < (2/2)


--- Quote from: Kindred on February 05, 2021, 04:59:16 PM ---you know, there are much easier ways to spot and stop spammers.....

--- End quote ---
Agreed - especially as this would effectively invalidate what are otherwise perfectly valid email addresses.

I use several gmail accounts with one or more period characters in them and AFAIK none of the forums/websites I use them on have ever stripped the period character(s) from my email address.

Also, the '+' character is also valid in email addresses to enable one email address to be used in multiple ways - example:

I think the approach should be to use verification questions/challenges to prevent spammers from registering  - I have done this for many years with my SMF forums with a success rate of more than 99.5% (ie, less than 1 in 200 new members is a spammer) - rather than creating work for admins who then have to deal with these spammers after they've been allowed them to join.

--- Quote from: mrhope on February 05, 2021, 05:09:33 PM ---Well, I'd welcome suggestions. I've read and tried a lot of different suggestions and we have always got hammered with spammers. I've tried various captcha mods, re-create random questions on registration
--- End quote ---

I also use the BadBehavior for SMF, httpBL, Image for Anti-Spam Verification Questions and StopSpammer mods.

build 20-30 questions, ask 2 during registration -- you do have to cycle them every year or so.

I have not had a spammer register in 3 years now.

gmail should be a goal these days.
A lot of human spammers somewhere in dark rooms use it, because you can generate unlimited email addresses...
A nice way to get protect of them, is like kindred described. You can use questions for registration, maybe about 20 or above, regularly changing.

For 2.0.x Sources/Subs-Members.php

--- Code: --- // !!! Separate the sprintf?
if (empty($regOptions['email']) || filter_var($regOptions['email'], FILTER_VALIDATE_EMAIL) === false || strlen($regOptions['email']) > 255)
$reg_errors[] = array('lang', 'profile_error_bad_email');

--- End code ---

Add Before

--- Code: ---    $spacesDomainList = array('','');
    foreach($spacesDomainList as $spaceDomain)
        $tmp = explode("@", $regOptions['email']);
        $emailDomainCheck = array_pop($tmp);
        if ($emailDomainCheck === $spaceDomain)
            $regOptions['email'] = str_replace(".","",$tmp[0]) . '@' . $spaceDomain;

--- End code ---

Good one VB, though to catch and derivatives, I'd make a slight change:

--- Code: ---$emailDomainCheck = array_pop($tmp);
--- End code ---


--- Code: ---$emailDomainCheck = strtolower(array_pop($tmp));
--- End code ---


[0] Message Index

[*] Previous page

Go to full version