Fout validatie email

  • Beste,
    voor een project van mij wil ik graag OOP toevoegen. Nou heb ik een functie voor het valideren van een email, in die functie staat FILTER_VALIDATE_EMAIL. Ik wil dat als de email niet klopt dat hij false weer geeft. Met een if heb ik de functie opgeroepen.


    Echter het probleem is dat hij het niet doet. Als ik de email goed invul geeft ie toch een melding aan van dat ie niet klopt. Weet misschien iemand hoe ik dit kan oplossen?


    Dit is de code:


    Met vriendelijke groet,
    Frank sijbom

  • Guest, wil je besparen op je domeinnamen? (ad)
  • Dit is niet objectgeorienteerd, trouwens; dat kan beter en compacter, desgewenst nog de HTML compleet gescheiden van PHP
    Je kan het beter opvragen met direct de filter_var in een if-je. En nog een tip: Je kan direct dit doen:
    return filter_var($email, FILTER_VALIDATE_EMAIL); aangezien deze functie al true of false retourneert is dit overbodig.


    In je staat dit: ($keuren->EmailKeuren). Je moet er haakjes omheen doen, en een variabele meegeven, wat je op lijn 32 doet is namelijk nutteloos, er wordt daar true geretourneerd maar het wordt nergens in opgeslagen. Dus van lijn 54 kan je het beste dit maken:
    if(!$keuren->EmailKeuren($email))
    Langer:
    if not $keuren->EmailKeuren > true, dan foutmelding weergeven.


    En hoe ik het zou doen:

    PHP
    <?php
    if(!filter_var($email, FILTER_VALIDATE_EMAIL))
    {
    echo 'Meh, niet goed!';
    }
    ?>


    Succes :)

  • Thx jannick hij klopt, ik ga niet met if(!filter_var()) { } doen omdat ik stapje voor stapje meer wil leren. Als het het nog niet is jammer. Ik probeer zo veel mogelijk te leren en zonder fouten kom ik erniet.


    Ik heb precies gedaan wat je zei dus voor de mensen die oplossing willen weten staat hier boven.


    Met vriendelijk groet,
    Frank sijbom


    ps. Moeten nog meer methodes bij;)

  • Jannick:


    Citaat

    return filter_var($email, FILTER_VALIDATE_EMAIL); aangezien deze functie al true of false retourneert is dit overbodig.


    Dit is niet helemaal waar, zie [func]filter_var[/func].


    @BrokenTrack:


    Citaat

    Naast dat mijn eigen voorkeur uit gaat naar een regex... is zoals gezegd is dit niet OOP.


    Sterker nog, het is een mislukte poging. Je maakt namelijk geen klasse aan voor maar één methode.


    Een reguliere expressie is waarschijnlijk langzamer. Reguliere expressies zijn langzaam van zichzelf, en een functionaliteit die al in PHP ingebouwd is zou sneller moeten zijn.


    Daarnaast is het niet waar dat een class met slechts één method niet mogelijk is. Er zijn best situaties denkbaar waarin een class maar één method heeft, maar in dit geval is het inderdaad niet correct.

Participate now!

Heb je nog geen account? Registreer je nu en word deel van onze community!