Foutje bij email check?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Hans De Ridder

Hans De Ridder

10/03/2016 17:46:41
Quote Anchor link
Ik gebruik het volgende script hier van het forum:

https://www.phphulp.nl/php/script/snippets/email-validatie-snippet/1646/emailvalidatiesnippet/1194/

Dat leek goed te werken.
Maar als ik bijv. ingeef (via testprogrammaatje) hans_knight@@hotmail.com dan
komt er in de echo:

Result custom checkmail:
valid

Result filter_var:
invalid

Result forced preg_match:
invalid

Bij andere verkeerde ingave staat er 3 x invalid.
Nu was mijn vraag of het script wel klopt. Of moet ik zelf de 3 resultaten verwerken?
Ik vang het resultaat als volgt af:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
$ma = checkmail($email_address);
if (!$ma === TRUE){
return 'fout emailadres';
}
 
PHP hulp

PHP hulp

26/04/2024 02:52:35
 
- Ariën  -
Beheerder

- Ariën -

10/03/2016 17:48:50
Quote Anchor link
Een mailadres heeft geen twee @'jes. Dus de filter_var is uiteraard invalid.
 
Hans De Ridder

Hans De Ridder

10/03/2016 19:00:20
Quote Anchor link
Ja, dat snap ik...
Maar moet ik dan alle drie de resultaten afvangen?
Of staat er in het script ergens dat het totaal een negatief resultaat geeft?
Gewijzigd op 10/03/2016 19:02:28 door Hans De Ridder
 
- Ariën  -
Beheerder

- Ariën -

11/03/2016 09:38:22
Quote Anchor link
Zo te zien is het een testscriptje. De functie checkmail() geeft een boolean (true/false) terug als de formatering van het mailadres niet klopt en als er geen MX-server aanwezig is.
 
Hans De Ridder

Hans De Ridder

11/03/2016 09:54:21
Quote Anchor link
Volgens mij heb ik PHP 5.5.
Maar lijkt erop of hij de eerste vergelijking pakt (PHP5.3).
Want dan zou het wel kloppen.
Dan checkt hij alleen met de preg_match.
Dan maakt het niet uit of een toegestaan '@' meerdere keren wordt gebruikt.
Ik test het nog wel eens vandaag.
Wordt vervolgd..


Toevoeging op 11/03/2016 11:21:35:

Bedankt voor je reacties!
Ik laat nu het aantal '@' tellen.
En het lijkt te werken nu.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
  $tel = substr_count ( $email, '@' );


En verderop

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
if ($tel === 1)
{
          return $valid;
     }
}            
     /* No valid email --> no correct host name or no MX records found*/
     return $tel;
}
Gewijzigd op 11/03/2016 09:55:42 door Hans De Ridder
 



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.