Controleren of emaildomein geblokkeerd wordt
Ik probeer een kleine controle uit te voeren op e-mailadressen die ingevoerd worden tijdens de registratie van een account. Hierbij moeten domeinnamen blokkeerd worden die in de database zitten; zoals @hotmail.com, @live.nl, enz...
Nu is het probleem dat ik ook @live.* wil blokkeren maar hierbij heb ik geen idee hoe ik dat moet aanpakken. Wat ik tot nu toe heb is:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public function check_email($email)
{
global $db;
$email = substr($email, strrpos($email, "@"));
$rEmailDeny = $db->sql_query("
SELECT deny_id,
deny_name
FROM " . TABLE_EMAILDENY . "
WHERE deny_name = '" . $db->sql_quote(str_replace('@', '', $email)) . "'
");
echo $rEmailDeny['deny_name'];
return ($rEmailDeny) ? false : true;
}
{
global $db;
$email = substr($email, strrpos($email, "@"));
$rEmailDeny = $db->sql_query("
SELECT deny_id,
deny_name
FROM " . TABLE_EMAILDENY . "
WHERE deny_name = '" . $db->sql_quote(str_replace('@', '', $email)) . "'
");
echo $rEmailDeny['deny_name'];
return ($rEmailDeny) ? false : true;
}
waarna ik controleer met: !$usr->check_email($_POST['email'])
Heeft iemand voor mij een goede uitleg/antwoord hoe ik kan controleren of het ingevulde e-mailadres een niet toegestaan domein bezit zoals @live.*
Alvast bedankt!
Gewijzigd op 01/01/1970 01:00:00 door Steef
En wat is hier het nut van?
Alleen nu is het het geval dat je met @live heel veel domeinextenties hebt die geblokkeerd moeten worden. Daarvoor wil ik in de database kunnen neerzetten van @live.*.
Dan haal je toch de extensie (wat na de punt komt dus) weg (in die functie) en klaar is Kees eeh, Steef...
Dan doe je dat toch bij al die domeinen. Zet alleen het eerste stuk in de database en controleer ook alleen het eerste stuk. Dus hotmail, live, gmail enz. mag gewoon niet ongeacht wat er nog achter komt.
Hoe kan ik dan controleren wat er tussen de @ en de laatste punt staat?
Gewijzigd op 01/01/1970 01:00:00 door Steef
Je haalt het laatste stuk na de punt eraf en van hetgeen je overhoudt neem je het laatste stuk.
Dat is nu juist mijn vraag, hoe kan ik dit doen?
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?php
ini_set ('display_errors', 1);
error_reporting (E_ALL | E_STRICT);
$email = '[email protected]';
$found = array ();
preg_match ('/@(.+)\./', $email, $found);
echo '<pre>' . print_r ($found[1], true) . '</pre>';
?>
ini_set ('display_errors', 1);
error_reporting (E_ALL | E_STRICT);
$email = '[email protected]';
$found = array ();
preg_match ('/@(.+)\./', $email, $found);
echo '<pre>' . print_r ($found[1], true) . '</pre>';
?>
@Jan, thanx! Dat werkt prima! Nu kan ik weer verder met mijn controle...
Graag gedaan :-)