Avatar billede Far Nybegynder
09. november 2010 - 12:56 Der er 10 kommentarer

dansk email adresse

Hejsa

Jeg bøvler med et php script som gør følgende:

Hvis email > 7 tegn og mindre end 30 tegn
Hvis email kun indeholder et @
Hvis emails sidste tegn er .dk
Udskriv valid email
ellers
udskriv fejlbesked
ellers
udskriv fejlbesked
ellers
udskriv fejlbesked


Nogen som kan hjælpe?
Avatar billede repox Seniormester
09. november 2010 - 13:02 #1
Du skriver 'ellers' tre gange - betyder det du ikke kan nøjes med et regulært udtryk til at kontrollere dine krav og så bare skrive en samlet fejlmeddelelse?
Avatar billede majbom Novice
09. november 2010 - 13:17 #2
ville da også benytte mig af noget regex i stedet, det der bliver hurtigt langhåret og fuldstændig unødvendigt.

(opretter du alle dine opgaver herinde inden du selv går i gang med dem, eller?)
Avatar billede Far Nybegynder
09. november 2010 - 13:17 #3
jo, det var bare for at vise, at ellers skal den sige fejl.
Avatar billede Far Nybegynder
09. november 2010 - 13:20 #4
Nej det gør jeg ikke. Jeg arbejder skam med dem =)
Avatar billede coderdk Praktikant
09. november 2010 - 14:49 #5
if ( !preg_match( '/^[-!#$%&\'*+\\.\/0-9=?A-Z^_`{|}~]+@([-0-9A-Z]+\.)+\.dk$/i', $email ) ) 
{
  die( "Fejl!" );
}
echo "OK!";
Avatar billede Far Nybegynder
09. november 2010 - 22:15 #6
@coderdk
Hvad går den kode præcist?

Hvordan får jeg den evt til at hænge sammen med en form - html?
Avatar billede Far Nybegynder
09. november 2010 - 22:15 #7
gør*
Avatar billede coderdk Praktikant
09. november 2010 - 22:24 #8
Well. Den kode checker bare variablen $email, om det lader til at være en gyldig dansk emailadresse. Hvis den ikke er dør scriptet med en "Fejl"-besked. Ellers fortsættes der bare. Det er nemt at integrere med en formular.
Avatar billede Far Nybegynder
10. november 2010 - 12:25 #9
Foreløbig tak.

Har en side1:
<html>

<form action="mail.php" method="get">
Tilmeld nyhedsbrev <input type="text" name="email" />
<input type ="submit" />
</form>

</html>

Side2



<?php

$email=($_GET['email']);

if ( !preg_match( '/^[-!#$%&\'*+\\.\/0-9=?A-Z^_`{|}~]+@([-0-9A-Z]+\.)+\.dk$/i', $email ) ) 
{
  die( "Fejl!" );
}
echo "OK!";

?>



Siden virker, men jeg får beskeden Fejl uanset hvordan jeg udformer emailen. Den skulle jo gerne virke med fx test@hotmail.dk


Hvad gør jeg forkert?
Avatar billede coderdk Praktikant
10. november 2010 - 21:15 #10
Ah, ret +\.dk$ til +dk$ :) Altså

if ( !preg_match( '/^[-!#$%&\'*+\\.\/0-9=?A-Z^_`{|}~]+@([-0-9A-Z]+\.)+dk$/i', $email ) )
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