Avatar billede BrJoe Nybegynder
13. september 2009 - 03:23 Der er 6 kommentarer og
1 løsning

Email Validering

Hej Eksperter

Hvad gør jeg forkert her? - den vil ikke validere mit email felt.

<?php   
if (isset($_POST['submit']))
{
    if (empty($_POST['fornavn']))
    {
        echo "Du skal indtaste dit fornavn";
    }
    elseif (empty($_POST['efternavn']))
    {
        echo "Du skal indtaste dit efternavn";
    }
    elseif (empty($_POST['emne']))
    {
        echo "Du skal indtaste et emne";
    }
    elseif (empty($_POST['besked']))
    {
        echo "Du skal indtaste en besked";
    }
    else
    {

       
$modtager = "min@email.dk";
$emne = "Mail fra en bruger";
$besked = "Fornavn: " . $_POST['fornavn'] . "\nEfternavn: " . $_POST['efternavn'] . "\nEmail: " . $_POST['email'] . "\nEmne: " . $_POST['emne'] . "\nBesked: " . $_POST['besked'] . "";
$header = "from:Testing";
       
$pattern = "/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/i";
if (preg_match($pattern, trim(strip_tags($_POST['email']))));
else {
echo "Udfyld venligst din email korrekt!";
}
       
mail($modtager, $emne, $besked, $header);
echo "Tak for din email - du vil blive besvaret hurtigst muligt.";
    }
}
?>

På forhånd tak.
Avatar billede lolman Nybegynder
13. september 2009 - 04:13 #1
prøv i stedet for:

--
if (preg_match($pattern, trim(strip_tags($_POST['email']))));
else {
echo "Udfyld venligst din email korrekt!";
}
--

Så prøv

--
if (!preg_match($pattern, trim(strip_tags($_POST['email'])))) echo "Udfyld venligst din email korrekt!";
--
Avatar billede erikjacobsen Ekspert
13. september 2009 - 08:18 #2
Hvorfor synes du ikke man må have en emailadresse på formen: xxxx@xxxxxxxxxx.info  ?
Avatar billede BrJoe Nybegynder
13. september 2009 - 10:25 #3
Tak lolman - det var den else statement der kom 1 gang for hurtigt. Læg et svar for point :-)
Avatar billede coderdk Praktikant
13. september 2009 - 11:55 #4
I "brugernavn"-delen på mailen må du have mange forskellige bogstaver, f.eks. også = og + i teorien også æøå og mange andre specialtegn ;P
Avatar billede coderdk Praktikant
13. september 2009 - 11:59 #5
Og som erik skriver, .info, .museum og .name virker f.eks. heller ikke som TLD'er ;)
Avatar billede kageanders Nybegynder
13. september 2009 - 17:30 #6
Du kunne evt. tilføje lidt mere, og tjekke om domænet overhovedet eksisterer.

Noget ligende det her:


$email = "kage@sovs.cz"; //emailen du vil tjekke
$domain = explode("@", $email);

if(checkdnsrr($domain[1], "MX")) {
  return true; //domænet findes
}
else {
  return false; //domænet findes ikke
}
Avatar billede BrJoe Nybegynder
18. september 2009 - 14:53 #7
Tak for svarene, men lolman burde jo sådan set ha' pointet da det var det jeg søgte.
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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