Quote:
Originally Posted by MegaHertz
I am getting ready to setup a forum and want to know if it is possible to allow users to register only if their email address is from a certain domain.
In other words I would like to exclude all domains, but the ones I specify. This would be the exact opposite of the way it is now.
I am just unsure of how to accomplish it. Any help or guidance would be greatly appreciated.
|
OK, here it is quick and dirty:
In your Admin Panel Options there is an area for email banning. (Which is the opposite of what you want as stated above.) What I have done is to allow you to reverse that function to only allow those who are listed.
Here you go:
Code:
Open includes/functions_user.php
Find This (Around Line 436)
// ###################### Start checkbannedemail #######################
function is_banned_email($email)
{
global $vboptions, $datastore;
if ($vboptions['enablebanning'] AND !empty($datastore['banemail']))
{
$bannedemails = preg_split('/\s+/', $datastore['banemail'], -1, PREG_SPLIT_NO_EMPTY);
foreach ($bannedemails AS $bannedemail)
{
if (is_valid_email($bannedemail))
{
$regex = '^' . preg_quote($bannedemail, '#') . '$';
}
else
{
$regex = preg_quote($bannedemail, '#');
}
if (preg_match("#$regex#i", $email))
{
return 1;
}
}
}
return 0;
}
REPLACE WITH:
// ###################### Start checkbannedemail #######################
function is_banned_email($email)
{
global $vboptions, $datastore;
if ($vboptions['enablebanning'] AND !empty($datastore['banemail']))
{
$bannedemails = preg_split('/\s+/', $datastore['banemail'], -1, PREG_SPLIT_NO_EMPTY);
foreach ($bannedemails AS $bannedemail)
{
if (is_valid_email($bannedemail))
{
$regex = '^' . preg_quote($bannedemail, '#') . '$';
}
else
{
$regex = preg_quote($bannedemail, '#');
}
if (preg_match("#$regex#i", $email))
{
return 0;
}
}
}
return 1;
}
Code:
What this has done is to switch the "return 0" and "return 1"
If you have any trouble with the above code let me know.
BTW: I did fully test this and it worked on my test BB.