Avatar billede EveryMA Mester
21. marts 2013 - 09:52 Der er 35 kommentarer og
1 løsning

Email validering

Hej,

Det er naturligvis nemt at finde et script, som validerer en email adresse, men mit problem er hvad man gør EFTER mailen er blevet valideret.

Langt de fleste sender en alert op om, at emailen er forkert. Men hvis man taster en godkendt mail, - hvad sker der så? Jeg kan ikke finde ét kodestykke, hvor det er inkluderet når man har tastet en rigtig mail.

F.eks:

function validate(form_id,email) {

  var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
  var address = document.forms[form_id].elements[email].value;
  if(reg.test(address) == false) {

      alert('Invalid Email Address');
      return false;
  }
}

- Den rører kun på sig hvis det er en forkert mail. Hvad gør man hvis man VIL noget med mailen?
Avatar billede kjeldsted Novice
21. marts 2013 - 10:19 #1
Du laver vel blot en else efter din if sætning. Den burde kører hvis mailen er korrekt.
Avatar billede kjeldsted Novice
21. marts 2013 - 10:25 #2
Eller, egentlig må det korrekte være at bede den lave en return true hvis mailen er korrekte, nu hvor det er i en funktion. Og så der hvor du skal bruge den, gør du blot sådan:
if(validate(form,mail)) {
// Adressen er korrekt
} else {
// Adressen er forkert
}
Avatar billede EveryMA Mester
21. marts 2013 - 10:32 #3
Men Kjeldsted, kan man cutte Javascriptet og istedet smide noget ASP ind, som eventuelt gemmer mailen i databasen? ASP'en kan jeg godt, men hvordan får jeg den til at arbejde sammen med det stykke javascript?
Avatar billede kjeldsted Novice
21. marts 2013 - 10:39 #4
Altså, du kan enten bede JS'en om at submitte en form, redirecte til en anden URL, eller også kan du via JS og Ajax lave et kald til en ASP side "bag om", altså uden at forlade siden man er på. Alt efter formål.
Avatar billede EveryMA Mester
21. marts 2013 - 10:40 #5
Så Ajax skal blandes ind i det, hvis det hele bare skal ske med ét klik: Validering, gemme og skrive 'Udført'?
Avatar billede kjeldsted Novice
21. marts 2013 - 11:48 #6
Hvis ikke at browseren skal opdatere siden så, ja.

Kender du godt til hvordan det hænger sammen med ASP og JS. Altså hvordan de to sprog fungere? For det er faktisk en vigtig ting for at kunne få dem til at snakke sammen.
Avatar billede EveryMA Mester
21. marts 2013 - 11:55 #7
Indenfor ASP kan jeg sagtens skrive scriptet, som gemmer mailen i databasen. Det er til nyhedsbreve, hvor folks mails bliver gemt og sender brugt til udsendelse af nyhedsbreve. Men problemet er bare hvordan en email validering i JS skal kombineres med et script i ASP (scriptet som gemmer mailen).
Avatar billede olebole Juniormester
21. marts 2013 - 16:42 #8
<ole>

Din RegExp forkaster lovlige e-mail-adresser. Hvorfor nøjes du ikke bare med at tjekke, om adressen indeholder et snabel-A og et punktum? Det er meget lettere og i langt de fleste tilfælde rigeligt  =)

/mvh
</bole>
Avatar billede EveryMA Mester
21. marts 2013 - 17:07 #9
Korrekt. Men så kan man jo skrive @. som email. Og når mit system udsender nyhedsbreve, så opstår der fejl ved netop den mail. Og når vi taler om flere hundrede mails så det jo ikke en jeg bare finder i databasen :)
Avatar billede olebole Juniormester
21. marts 2013 - 17:37 #10
Ja og så skriver de bare foo@foo.ugh i stedet - og så er du lige meget på spanden  =)

At du validerer adressen, giver frasorterer pr. erfaring ikke ret mange døde adresser - men det er meget let at udelukke gode.

Det mest effektive er at sende brugeren en automatisk bekræftelses-mail, når vedkommende tilmelder sig nyhedsbrevet. I mailen lægger du et link, som brugeren klikker på for at verificere, at hun faktisk ønsker at modtage dit nyhedsbrev.

De døde adresser, du allerede har i databasen, kan du vel finde i dine logfiler. Der må komme en fejl retur
Avatar billede EveryMA Mester
21. marts 2013 - 17:47 #11
Ja, man kunne naturligvis også sende et aktiveringslink.
Jeg hæfter mig dog stadig ved hvordan et JS kan kombineres med ASP-kode i forhold til true/false

hvis xx = true > kør asp script

hvis xx = false > kør alert
Avatar billede olebole Juniormester
21. marts 2013 - 17:52 #12
Det troede jeg, Kjeldsted allerede havde svaret på: Ajax - eller sideskift
Avatar billede EveryMA Mester
22. marts 2013 - 15:16 #13
Nej, det var ikke svar nok. At sige man skal lave det i Ajax hjælper jo ikke meget :)

Jeg kom jo her med et script, som sagtens kan bruges, men hvor jeg ikke anede om man kunne eller hvordan man indlemmer ASP i det :)
Avatar billede olebole Juniormester
22. marts 2013 - 15:42 #14
Så tror jeg, hverken Kjeldsted eller jeg forstår, hvad du vil. Når den pågældende kodestump er afviklet, skal mailen sendes - enten ved et form-post/sideskift eller ved hjælp af Ajax. Hvis du ikke vil sende mailen, må du fortælle, hvad det så er, du vil

Men som sagt forkaster din kode valide adresser - men lader alle stave- og andre fejl slippe igennem. Spørgsmålet er derfor, om det overhovedet er en god løsning  =)
Avatar billede EveryMA Mester
22. marts 2013 - 16:03 #15
Situationen er jo den, at du liiiige skal læse hvad spørgsmålet egentligt er. Jeg takker for den tid du bruger, men det hjælper os begge hvis du ønsker at læse spørgsmålet.

Det jeg har brug for HERINDE handler ikke om at sende en email. Det handler, som overskriften så fint siger det, om at validere en email-adresse.

Desuden har jeg sagt, at jeg ønsker at gemme den skrevne email i databasen vha. asp. Det er jo JS som validerer mailen og derfor ved jeg ikke hvordan jeg får indlemmet ASP.

At sende mailen er intet problem. Mit problem er hvordan man indlemmer ASP i JS, når mailen skal gemmes umiddelbart efter valideringen.
Avatar billede olebole Juniormester
22. marts 2013 - 16:25 #16
Jamen, jeg har skam læst spørgsmålet, men det giver ikke mening. Du kan ikke 'blande ASP' ind i JavaScript kode. Derfor foreslår vi dig, hvad du faktisk kan gøre  =)
Avatar billede EveryMA Mester
22. marts 2013 - 19:53 #17
Jep, og det er via. ajax jeg kan gøre det.

Men hvordan blander jeg så ASP ind i Ajax? :)

Det jo ASP-delen som GEMMER emailen, så jeg slipper jo ikke for at bruge ASP. Men mailen skal stadig valideres :)
Avatar billede kjeldsted Novice
23. marts 2013 - 10:52 #18
Jeg blander mig lige engang igen.

Et andet aspekt i diskussionen om den måde du validere på (havde ikke lige nærlæst din regex før) er at du faktisk udelader en lang række af tegn som er 100% gyldige til brug i e-mail adresser. Ganske vist siger min erfaring mig at man skal passe på med at benytte disse, da der findes mange webprogrammørere der pisser lidt på hvad en gyldig e-mail er. Jeg havde en gang en mail med adressen #@kjeldsted.dk og den virkede som sådan ganske fint (den var så oprettet lidt for sjov). Dog måtte den stort set ikke bruges nogen steder i nyhedsbreve og sådan fordi de fleste programmørere betragtede den som ugyldig. Og da one.com så skiftede webmail system, kunne jeg til sidst heller ikke logge ind til den, da deres nye system påstod, at adressen er ugyldig (selvom den dog stadig findes). Så hopper du med på vognen og tjekker blot om den indeholder bogstaver og tal, ja, så skiller du dig jo ikke ud fra mængden. Men det er altså en fejl i mine øjne. Så den mest korrekte løsning af den #0 og så Oleboles forslag er at tjekke om der er et @ og et . Og jeg vil nok tro at der bliver sendt rigtig mange nyhedsbrevet til fx. a@a.aa. Og så er vi jo lige vidt. Eller skal du tjekke for (.*@.*\.w{2,4})

Og nu har jeg lige skimmet jeres indlæg igennem. Men fik jeg nogensinde svar på spørgsmålet i #6? Det bliver en meget lang kamp hvis ikke du har 100% styr på hvordan serverside og clientside sprog fungere hvis du skal få disse til at snakke sammen.

Næste beslutning ligger så i om du normalt bruger jQuery, eller kun ren JS. jQuery har nogle Ajax funktioner, men det kan også sagtens skrives i "ren JS". Det er blot hvad man selv synes bedst om.
Avatar billede EveryMA Mester
25. marts 2013 - 10:27 #19
Beklager, at jeg ikke lige fik svaret, Kjeldsted!

> Kender du godt til hvordan det hænger sammen med ASP og JS. Altså hvordan de to sprog fungere?

At blande ASP og JS kender jeg intet til, men at skrive koderne hver for sig kender jeg til.

Selvfølgelig kan man via. asp og en frame (så hele siden ikke opdateres) gå ind og tjekke om der er punktum og snabel-a i det skrevne felt, men så vidt jeg er orienteret er det i forhold til sql-injections ikke særlig sikkert - derfor bruger langt de fleste JS til at sikre en korrekt email. Det er hvad jeg har læst, og derfor er jeg gået den vej :)
Avatar billede olebole Juniormester
25. marts 2013 - 11:21 #20
Der er formodentlig ingen, som validerer en e-mail-adresse gennem en frame - og hvis der var, ville det på ingen være en trussel i forbindelse med SQL-injections.

Normalt ville man validere på denne måde:

<script type="text/javascript">
function validate(frm) {
    if (frm.email.value=="") {
        alert("Du skal udfylde email");
        frm.email.focus();
        return false;
    }
    if (frm.email.value.indexOf("@")<0 || frm.email.value.indexOf(".")<0) {
        alert("Skriv en gyldig email");
        frm.email.focus();
        return false;
    }
    return true;
}
</script>

<form action="send_mail.asp" method="post" onsubmit="return validate(this)">
    <input name="email" type="text">
    <textarea name="msg"></textarea>
    <button type="submit">Send</button>
</form>
Avatar billede EveryMA Mester
25. marts 2013 - 11:40 #21
Øøhh... nu læser du igen ikke hvad jeg skriver! :)

"Selvfølgelig kan man via. asp og en frame (så hele siden ikke opdateres)"


Du kan ikke afvikle ASP på en side således at det opdateres uden at du skal opdatere siden. Det kan man med JavaScript, og derfor nævnte jeg ASP og en frame i samme tegn - det er jo slet ikke den vej jeg i starten ville gå, da jeg ville have javascript til at validere og asp til at gemme... men de to kan åbenbart ikke arbejde sammen. Så må jeg tage fat i Ajax, som I har nævnt, men du ved vel ikke hvordan man forbinder Ajax med ASP... ellers havde du vel skrevet det :)
Avatar billede kjeldsted Novice
25. marts 2013 - 12:24 #22
Jeg må altså indrømme at jeg ikke er overbevist om at du har 100% styr på serverside og clientside programmering. No offence.
Desuden er jeg heller ikke helt med på om dig valg af Ajax blot er en tilfældighed. I #4 nævnte jeg vist tre forskellige løsningsforslag hvor det ene var Ajax. Det andet var som Ole skriver i #20.
Løsningen med Ajax kræver jo ikke kun at lave en request fra klienten til serveren, men også at klienten jo så skal reagere efter svar fra serveren og dynamisk ændre indholdet hvis formen ikke skal vises efter den er submittet. Ikke fordi alt det der er meget komplekst, men det kræver en forståelse for JavaScript, samt serverside og clientside programmering.
Avatar billede olebole Juniormester
25. marts 2013 - 12:43 #23
#21 Undskyld, men jeg har svært ved at finde ud af, om du ved noget om webudvikling. Under alle omstændigheder, så er det ikke nødvendigt at bruge hverken en frame eller Ajax for at validere en e-mail-adresse uden opdatering af siden.

Sideskiftet kommer først i det øjeblik, formen submittes - altså når mailen sendes. Selve valideringen er jo JavaScript og skifter ikke noget
Avatar billede EveryMA Mester
25. marts 2013 - 13:10 #24
Olebole jeg forstår dig virkelig ikke!

Jeg har jo sagt mange gange, at jeg skal gemme den skrevne email i min database ved hjælp af ASP.

Så hvordan vil du kode i ASP således at siden ikke opdateres?

Det jo bare ét felt hvori mailen skrives også klikker man ok og er det en ugyldig mail får man besked og ellers siger den mailen er gemt.

Jeg ved jo godt at man i Javascript ikke behøver at skifte/opdatere siden. Men som skrevet mange gange - mailen SKAL gemmes via. asp. Så hvordan vil du klare, at gemme noget i ASP uden at opdatere/skifte siden?
Avatar billede kjeldsted Novice
25. marts 2013 - 13:24 #25
Og vi forstår ikke dig...

Nu har jeg fire-fem gange spurgt om du har styr på serverside/clientside. Jeg må formode at det er et nej, siden du ikke kommentere det.
Og i så fald bør du ikke skrive Ajax, men i stedet få JS til at validere mailen og så submitte formen.
Avatar billede olebole Juniormester
25. marts 2013 - 13:35 #26
"Så må jeg tage fat i Ajax, som I har nævnt, men du ved vel ikke hvordan man forbinder Ajax med ASP... ellers havde du vel skrevet det :)" >> Vi er åbenbart to, der er for dumme til at forstå dig. Så må det være sådan!
Avatar billede EveryMA Mester
25. marts 2013 - 13:39 #27
Hehe... Jeg sidder og griner lidt... I snakker rigtig meget men på intet tidspunkt har I kommet med et reelt svar.

1: Skal jeg bruge Ajax? Hvordan skal jeg forbinde ASP og Ajax?

2: Skal jeg bruge JS? Hvordan skal jeg forbinde ASP og JS?

3: Skal jeg kun bruge ASP? Jamen så kan olebole ifølge ham selv gøre det uden at hele siden skal opdateres - kun ved hjælp af ASP.

4: Kjeldsted du skrev til sidst: "Og i så fald bør du ikke skrive Ajax, men i stedet få JS til at validere mailen og så submitte formen."

Se hvad du skriver: Også submitte formen. Heheheheheheheheh jamen igen...... hvordan skal den gemme mailen vha. asp i min database, når den valideres i js?
Avatar billede olebole Juniormester
25. marts 2013 - 13:42 #28
Undskyld, jeg har vist spildt min tid i denne tråd. I'm outta Dodge!
Avatar billede EveryMA Mester
25. marts 2013 - 13:50 #29
Det var også min intention. For du har aldrig kommet med et reelt svar for hvordan man forbinder dem. Så du spilder også min tid...
Avatar billede kjeldsted Novice
25. marts 2013 - 13:58 #30
Tak for et godt grin i #27!

Jeg vil nok anbefale dig at lave en løsning i ren ASP. Vi kommer nok ikke videre med dette. Ole har serveret et svar for dig på et sølvfad, som du efterspørger. Og hvis jeg kender Ole godt nok, kan jeg fortælle at hverken jeg heller han vil made dig med en sølvske med den løsning der er blevet serveret.

Men altså, når du intet ved om serverside/clientside bør du nok gøre det så absolut simpelt som overhovedet muligt.

Og som svar på 4 i #27, kan jeg kun svare dig at før du begynder at lege med serverside programmering bør du nok lære at forstå grundlæggende WEB programmering.
Avatar billede EveryMA Mester
25. marts 2013 - 14:06 #31
Jo jo det fint. Altså jeg har rundt regnet 8000 unikke besøgende om dagen, så noget må jeg skam vide.

Og nej - Ole har ikke serveret et svar. Jeg kan ikke se hvorhenne han forbinder ASP med JS/Ajax, som altså var den vej I ville gå :)
Avatar billede olebole Juniormester
25. marts 2013 - 14:17 #32
- og jeg har arbejdet professionelt med Ajax i 13 år (fra 5 år før, teknikken fik sit navn), så det er nok ikke Ajax-delen, der giver problemer  *o)

Problemet for både Kjeldsted og mig har været at forstå, hvad du skriver. Tager man mine 5.000 besvarelser af spørgsmål på Ekeperten i betragtning, synes det ikke at være et generelt problem ... tværtimod! Så må du selv finde ud af, hvad du mener, problemet er  =)

Da du åbenbart også er træt af tråden, kan du bare selv lægge et svar og acceptere, så tråden lukkes
Avatar billede EveryMA Mester
25. marts 2013 - 14:24 #33
32 indlæg.

Jeg ved stadig ikke hvordan man forbinder ASP med JS/Ajax, selvom du har arbejdet med sidstnævnte i 13 år.

Sikke en drejning...
Avatar billede kjeldsted Novice
25. marts 2013 - 14:36 #34
Hvor mange besøgende du har er jeg nu fuldstændig ligeglad med, søde ven.
Det siger INTET om din viden. Derimod har du bevist i denne tråd at du ikke har nok viden om webprogrammering til at kunne forstå og besvare simple spørgsmål, og til at kunne formulere dig så vi kan forstå dig.

Men start med at undersøge hvordan serverside- og clientsideprogrammering hænger sammen. Når du har fået en forståelse for dette kan du måske begynde at se på noget der er lidt mere komplekst.
Avatar billede EveryMA Mester
25. marts 2013 - 14:47 #35
Nej da.

Jeg ved stadig ikke hvordan man forbinder ASP med JS/Ajax. Det var bl.a. det jeg oprettede spørgsmålet for.


Men du kan åbenbart lide at tale udenom lader det til?
Avatar billede EveryMA Mester
27. marts 2013 - 22:26 #36
Yes.

35 indlæg og intet reelt svar. Jeg lukker og slukker - og desværre har I bare spildt min tid.
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



Seneste spørgsmål Seneste aktivitet
I går 23:37 Poe strøm Af lurup i LAN/WAN
I går 14:46 GIF-EDITOR Af snestrup2000 i Billedbehandling
I går 14:03 Logge ind Af Bob i PC
I går 12:12 2 skærme - 1 virker - den anden siger No signal Af eksmojo i Skærme
I går 10:33 openvpn projekt Af dcedata1977 i Windows