Pagina 1 van 1

[js]Email validatie

BerichtGeplaatst: 16 apr 2009 16:38
door DoubleJ
Ik heb heel lang gezocht naar een goede functie om e-mail adressen te kunnen valideren.
Uiteindelijk heb ik een php functie uit wordpress omgebouwd.

Code: Selecteer alles
function isEmail( userEmail )
{
   // Regular expression to check email
   var emailExp = new RegExp('^([a-z0-9+_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,6}\$', 'i');
   if (userEmail.length > 0 && userEmail.indexOf('@') != -1 && userEmail.indexOf('.') != -1)
   {
      return emailExp.test(userEmail);
   }
   else
   {
      return false;
   }
}

Re: [js]Email validatie

BerichtGeplaatst: 16 apr 2009 17:25
door frizzy
Dankje (k)

Re: [js]Email validatie

BerichtGeplaatst: 24 mei 2009 13:38
door Stefan
Hier was toch ook gewoon een PHP 5 functie voor? (in een kleine functie gebouwd)

Code: Selecteer alles
function isEmail($string){
    return 
filter_var($string FILTER_VALIDATE_EMAIL);


Hierbij returned ie false of true...

Re: [js]Email validatie

BerichtGeplaatst: 25 mei 2009 14:28
door Derk
Als je het in javascript doet dan kan je een error geven voordat de gebruiker het form heeft gesubmit. Dit geeft dus een netter resultaat.

Re: [js]Email validatie

BerichtGeplaatst: 25 mei 2009 15:03
door frizzy
Maar PHP heb je ook nodig voor de veiligheid ;)

Re: [js]Email validatie

BerichtGeplaatst: 25 mei 2009 15:27
door Remi
Dus daarom doe je het allebei, en gebruik je in beide gewoon dezelfde regex.

Re: [js]Email validatie

BerichtGeplaatst: 25 mei 2009 18:48
door Stefan
Derk schreef:Als je het in javascript doet dan kan je een error geven voordat de gebruiker het form heeft gesubmit. Dit geeft dus een netter resultaat.


Je kan dus eigen wel zeggen (wat Frank ook zegt) dat je beide functies nodig hebt, de javascript voor het "live" controleren van de email en vervolgens de email laten controleren door php (voor het geval iemand zijn javascript uit heeft staan)

Re: [js]Email validatie

BerichtGeplaatst: 26 mei 2009 11:10
door DoubleJ
Het grote voordeel van javascript validatie is dat je de gebruiker van fouten op de hoogte kan brengen voordat je een pagina verstuurd en op een antwoord moet wachten waarin de fouten vermeld staan. Dit kan dus zorgen voor een betere gebruikers ervaring.

Server-side validatie is gewoon een must, niet alleen om een gebruiker op zijn fouten te attenderen na het versturen, maar ook vanwege het stukje veiligheid.

Stefan schreef:
Derk schreef:Als je het in javascript doet dan kan je een error geven voordat de gebruiker het form heeft gesubmit. Dit geeft dus een netter resultaat.


Je kan dus eigen wel zeggen (wat Frank ook zegt) dat je beide functies nodig hebt, de javascript voor het "live" controleren van de email en vervolgens de email laten controleren door php (voor het geval iemand zijn javascript uit heeft staan)

Re: [js]Email validatie

BerichtGeplaatst: 31 mei 2009 21:00
door Derk
Ik vraag me af of het uit maakt of als iemand javascript uit zet om de check te omzeilen het uitmaakt dat er dan een fout mail adres in je systeem staat. Die gaat dan nooit zijn validatie mailtje krijgen of andere mails. Hij heeft dus alleen zichzelf ermee. Tenminste, ik neem aan dat je het mail adres gaat gebruiken voor iets wat de gebruiker ook wil, anders spam je ermee.

Met andere woorden, client side en dan server side voor veiligheid? Lijkt me niet echt boeiend...

Tenzij je ook mensen mee wilt nemen die geen javascript hebben omdat ze in windows 3.11 browsen (of FF hebben en die plugin gebruiken).

Re: [js]Email validatie

BerichtGeplaatst: 01 jun 2009 18:23
door DoubleJ
Derk schreef:Ik vraag me af of het uit maakt of als iemand javascript uit zet om de check te omzeilen het uitmaakt dat er dan een fout mail adres in je systeem staat. Die gaat dan nooit zijn validatie mailtje krijgen of andere mails. Hij heeft dus alleen zichzelf ermee. Tenminste, ik neem aan dat je het mail adres gaat gebruiken voor iets wat de gebruiker ook wil, anders spam je ermee.

Met andere woorden, client side en dan server side voor veiligheid? Lijkt me niet echt boeiend...

Tenzij je ook mensen mee wilt nemen die geen javascript hebben omdat ze in windows 3.11 browsen (of FF hebben en die plugin gebruiken).

Ik geloof dat je de strekking van mijn verhaal een beetje ontgaan is.

Server-side validatie, kun je niet omheen. Jij vraagt om zekere informatie van de gebruiker, dus moet je deze, voor zover mogelijk, valideren. Als jij toestaat dat een gebruiker foute antwoorden in jouw database plaatst en vervolgens krijgt hij geen antwoord, is dit niet bepaald een vriendelijke oplossing.

Daarnaast is server-side validatie nodig om eventuele veiligheidsaspecten aan te pakken. Oftewel ervoor zorgen dat een kwaadwillende gebruiker onder geen enkele omstandigheid ongewenste data in het formulier kan plaatsen.

Door server-side validatie, te plegen en deze eventueel ook nog aan de gebruiker terug te koppelen, sla je twee vliegen in 1 klap. Ten eerste wordt het invullen van het formulier van de gebruiker gebruiksvriendelijker omdat deze op zijn fouten gewezen wordt en daarnaast vang je eventuele aanvallen af.

Dan komen we bij het stukje van het javascript. Wanneer een gebruiker eerst een formulier naar de server moet sturen, en dan daar wachten op een reactie, kan dit leiden tot een soort van ongenoegen. Vandaar dat we dan met javascript op de PC van de gebruiker al een validatie van te voren kunnen doen, zodat we de gebruiker direct van zijn fouten op de hoogte kunnen stellen en dat deze niet hoeft te wachten, eventueel geef je er ook nog tooltips of soortgelijke feedback bij. Dit zorgt voor een betere gebruikers ervaring.

Om dus tot een conclusie te komen is het mijn insziens wel degelijk nodig om beide validaties toe te passen. De ene vanuit het oogpunt van veiligheid, en zorgen dat de basis van je systeem voor iedereen werkt. Het tweede om te zorgen dat jouw webpagina een gebruiksvriendelijkere afhandeling heeft.

---- NOTITIE ----
Misschien is het leuk om het gesprek af te splitsen naar een discussie forum, omdat we een beetje van de snippets afwijken.

Re: [js]Email validatie

BerichtGeplaatst: 01 jun 2009 19:43
door KillerSponge
Waar het Derk om gaat, is dat als de gebruiker de client-side javascript validatie omzeilt, hij in veel gevallen (bv. bij een e-mail adres) alleen zichzelf er mee heeft. Het maakt voor veiligheid niet zoveel uit wat je precies in de database zet (er van uitgaande dat je queries e.d. goed zijn). In het ergste geval heeft de gebruiker een probleem: in dit geval 'zijn eigen schuld', omdat ie de javascript validatie heeft omzeilt.

Is wat voor te zeggen, maar is toch niet erg netjes. Ik doe zelf over het algemeen alleen server-side validatie (te lui om javascript validatie te doen).

Re: [js]Email validatie

BerichtGeplaatst: 01 jun 2009 22:35
door Derk
Dacht dat ik toch ongeveer hetzelfde zei als killer, maargoed, dat bedoel ik inderdaad.

Tevens komt daar nog eens bij dat er altijd zo op gehamerd wordt dat het mail adres goed moet zijn (anders mis je die achterlijke activatie mailtjes) dat de meesten het toch wel goed invullen. Is je website voor de doelgroep die twee linker handen heeft met computers (oid) dan is een beveiliging wel handig. Maar ook dan vind ik dubbelop niet nodig.


Een website hacken doe je niet met een vals e-mail adres opgeven, daar is meer voor nodig.