Controleren of emaildomein geblokkeerd wordt

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Steef

Steef

15/10/2009 10:28:00
Quote Anchor link
Hallo PHPhulpers,

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)
PHP script in nieuw venster Selecteer het PHP script
1
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;
}


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
 
PHP hulp

PHP hulp

05/11/2024 12:25:06
 
- SanThe -

- SanThe -

15/10/2009 10:33:00
Quote Anchor link
En wat is hier het nut van?
 
Steef

Steef

15/10/2009 10:37:00
Quote Anchor link
Hij controleerd tijdens het registreren dat een aantal domeinen, zoals @hotmail.com, @live.nl, @gmail.com enz... blokkeerd en dat je sowiso een bedrijfsemail adres nodig hebt.

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.*.
 

15/10/2009 10:40:00
Quote Anchor link
Nou?
Dan haal je toch de extensie (wat na de punt komt dus) weg (in die functie) en klaar is Kees eeh, Steef...
 
- SanThe -

- SanThe -

15/10/2009 10:42:00
Quote Anchor link
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.
 
Steef

Steef

15/10/2009 10:47:00
Quote Anchor link
Hoe zou ik dit dan kunnen controleren. Want soms kan je te maken hebben met een @subdomein.hoofddomein.nl, dan zitten er 2 punten in de emaildomein.

Hoe kan ik dan controleren wat er tussen de @ en de laatste punt staat?
Gewijzigd op 01/01/1970 01:00:00 door Steef
 
- SanThe -

- SanThe -

15/10/2009 10:49:00
Quote Anchor link
Je haalt het laatste stuk na de punt eraf en van hetgeen je overhoudt neem je het laatste stuk.
 
Steef

Steef

15/10/2009 10:52:00
Quote Anchor link
Dat is nu juist mijn vraag, hoe kan ik dit doen?
 
Davy Jansen

Davy Jansen

15/10/2009 10:58:00
Quote Anchor link
Misschien heb je iets aan php substr.?

http://php.net/manual/en/function.substr.php
 
Jan Koehoorn

Jan Koehoorn

15/10/2009 11:02:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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>';
?>
 
Steef

Steef

15/10/2009 11:06:00
Quote Anchor link
@Jan, thanx! Dat werkt prima! Nu kan ik weer verder met mijn controle...
 
Jan Koehoorn

Jan Koehoorn

15/10/2009 11:06:00
Quote Anchor link
Graag gedaan :-)
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.