[php]Hotmail e-mail acount filteren

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik gebruik op een website een formulier waar mensen gegevens in kunnen vullen, alle velden worden gecontroleerd op bepaalde waardes en/of er wel iets is ingevuld. Dit geld ook voor het E-mail adres.
Ik heb hier deze code voor gebruikt.
code:
1
2
3
4
5
6
7
8
9
10
if( !eregi("^[a-z0-9]+([_\\.-][a-z0-9]+)*"
        ."@([a-z0-9]+([\.-][a-z0-9]+))*$",
        $custemail, $regs) )
{
   exit ("<br><center><B>"._ERREM."</center>");
}
elseif( gethostbyname($regs[2]) == $regs[2] )
{
    exit ("<br><center><B>"._ERREM2."</center>");
}

Deze check werkt perfect, alleen ik wil ook de zgn hotmail.com accounts eruit halen.
Dus alle E-mail adressen die eindigen op @hotmail.com moeten ook een "exit" krijgen.

Hoe krijg ik dit werkend samen met die check die ik al gebruik?

Acties:
  • 0 Henk 'm!

  • Speedener
  • Registratie: September 2000
  • Laatst online: 12:54
Ik weet het niet zeker, maar kan je niet preg_match proberen

LG Therma V Split WP: HU143MA.U33-HN1636M NK5


Acties:
  • 0 Henk 'm!

Verwijderd

a) Waarom concatineer je 2 strings in je eregi ?? Om de lay-out van GoT niet te verneuken hoop ik ? :)

b) kan je niet doen ?:

PHP:
1
if( !eregi("^[a-z0-9]+([_\\.-][a-z0-9]+)*@(([a-z0-9]+([\.-][a-z0-9]+))|hotmail.com)*$", $custemail, $regs) )


:? Ik gebruik meestal preg functies daarmee ...

Acties:
  • 0 Henk 'm!

Verwijderd

gwoon exploden op een @ en dan is de tweede waarde uit de array automagisch hetgeen achter de @, dus misschien wel hotmail.com

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Verwijderd schreef op 05 January 2003 @ 23:12:
a) Waarom concatineer je 2 strings in je eregi ?? Om de lay-out van GoT niet te verneuken hoop ik ? :)

b) kan je niet doen ?:

PHP:
1
if( !eregi("^[a-z0-9]+([_\\.-][a-z0-9]+)*@(([a-z0-9]+([\.-][a-z0-9]+))|hotmail.com)*$", $custemail, $regs) )


:? Ik gebruik meestal preg functies daarmee ...
Die had ik dus gebruikt, maar die werkt niet.
Hij loopt gewoon door als iemand een hormail account opgeeft

Acties:
  • 0 Henk 'm!

Verwijderd

mja merk net dat ik grove fout erin had gezet :X

PHP:
1
if( !eregi("^[a-z0-9]+([_\\.-][a-z0-9]+)*@(([a-z0-9]+([\.-][a-z0-9]+))*|hotmail.com)$", $custemail, $regs) )


>> het sterretje moet natuurlijk voor gedeelte met "hotmail.com" komen 8)7
Als dit niet werkt, zou ik het eens met preg_match_all proberen (wel regexp tussen delimiters zette).

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Thx, maar ook deze werkt helaas niet .
Die preg_match_all gaat me te ver, zo goed is mijn php kennis ook weer niet.

Staat er ergens een voorbeeld hoe preg_match_all werkt?

Maar is er geen eenvoudiger oplossing zoals bv zoiets:
code:
1
if ($email == *@hotmail.com) {exit ("error"); }


Deze code klopt niet, maar ik bedoel dat idee, ik kan dit gewoon na die E-mail check zetten natuurlijk.

[ Voor 42% gewijzigd door Verwijderd op 06-01-2003 01:19 ]


Acties:
  • 0 Henk 'm!

  • luc
  • Registratie: Maart 2000
  • Niet online

luc

Zoiets kan natuurlijk:
PHP:
1
if (substr($email,-12) == "@hotmail.com") {exit ("error"); }

Acties:
  • 0 Henk 'm!

  • kvdveer
  • Registratie: November 2000
  • Laatst online: 07-11-2023

kvdveer

Z.O.Z.

luc schreef op 06 januari 2003 @ 06:09:
Zoiets kan natuurlijk:
PHP:
1
if (substr($email,-12) == "@hotmail.com") {exit ("error"); }
Het netste en eenvoudigste antwoord staat al eerder in deze thread...
PHP:
1
2
3
4
5
$email = "ik@hotmai.com";
$x = explode("@",$email);
if($x[1] == "hotmail.com" || $x[1] == "msn.com") {
  Hack_hotmail($email);
}

Localhost, sweet localhost


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
De oplossing van Luc werkt voor mij het beste.
Deze wilde ik zelf al eerder gebruiken had echter het substr vergeten waardoor ik het niet werkend kreeg.
De oplossing is vrij flexibel, deze is zo aan te passen zodat ook andere "free" E-mail accounts kunnen worden gefilterd.
Pagina: 1