Avatar billede rmk24 Nybegynder
21. juli 2009 - 22:58 Der er 6 kommentarer og
1 løsning

preg_match

ved ikke om det er her jeg skal spørge.. men skal bruge en form validering men kan ikke få min til at virke.. en jeg har ændret lidt i som jeg havde for noget tid siden. kan ikke finde fejlen. men den melder at det er forkert email selvom det ikke er..

public function mail($submit){
        if (!empty($submit)) {
            if(preg_match("/^[[:alnum:]][a-z0-9_\.\-]*@[a-z0-9\.\-]+\.[a-z]{2,4}$/", $_POST['email']) < 1){
                $email=false;
                $messageemail="&larr; Email er forkert!";

            }else {
                $email=true;

            }
            ?>
        <input class="felt" type="text" name="mail" value="<?php echo $_POST['mail'];?>" /> <span class="fail"><?php echo $messageemail; ?></span><br />
        <?php
        } else {
      ?>
            <input class="felt" type="text" name="mail" value="<?php echo $_POST['mail'];?>" /><br />
            <?php
        }
    }
Avatar billede erikjacobsen Ekspert
22. juli 2009 - 00:37 #1
Sådan noget som [[:alnum:]] findes ikke i den form til preg-funktionerne, men til de lidt tilsvarende ereg-funktioner.

Men jeg forstår ikke hvorfor du vil bestemme hvad der skal stå før et @ i en email-adresse. Der er ikke mange regler, og der findes lovlige emailadresser, som du vil afvise.
Avatar billede rmk24 Nybegynder
22. juli 2009 - 09:53 #2
okay.. bare en vi fik af en lærer for længe siden. men undre mig ikke der er fej i hehe. men har du en ide om hvordan linien kan se ud. så man tjekker efter @
Avatar billede rmk24 Nybegynder
22. juli 2009 - 10:22 #3
har selv fundet en løsning der virker.. ligger her.. hvis nogen kan finde en fejl der begrænser noget som den ikke skal så må de gerne sige til. men virker som den skal så vidt jeg har prøvet..

---------------------------------------------------------

public function mail($submit) {
        if (!empty($submit)) {
            $regexp="/^[a-z0-9]+([_\\.-][a-z0-9]+)*@([a-z0-9]+([\.-][a-z0-9]+)*)+\\.[a-z]{2,}$/i";
            if ( !preg_match($regexp, $_POST['mail']) ) {
                $messageemail = " &larr; Din mail er ikke korrekt";
                $mail = false;
            }else{
                $mail = true;
            }
            ?>
        <input class="felt" type="text" name="mail" value="<?php echo $_POST['mail'];?>" /> <span class="fail"><?php echo $messageemail; ?></span><br />
        <?php
        } else {
      ?>
            <input class="felt" type="text" name="mail" value="<?php echo $_POST['mail'];?>" /><br />
            <?php
        }
    }
Avatar billede rmk24 Nybegynder
22. juli 2009 - 10:28 #4
nogen der kender nogen gode sider hvor man kan lære reg-exp? eller bøger
Avatar billede erikjacobsen Ekspert
22. juli 2009 - 11:16 #5
I lovlig emailadresser, kan der stå flere tegn før @ end du anfører
Avatar billede rmk24 Nybegynder
22. juli 2009 - 12:07 #6
okay.. er det nogen tegn som man normalt bruger?
Avatar billede erikjacobsen Ekspert
23. juli 2009 - 11:53 #7
Det nemmeste er at sige, at der ingen regler er før @-et - ud over der ikke må stå et @
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester