Avatar billede jepsen83 Nybegynder
13. februar 2004 - 12:24 Der er 12 kommentarer

chekke for @ i flash fomrmail

Så er jeg her igen....

Vil bare høre om nogen ved hvordan man (ved hjælp af actionscript) sikre at man indtaster @ i mailboksen.

Min action på submitknappen ser således ud:

on (release) {
    if (name eq "" or subject eq "" or message eq "" or email eq "") {
        stop();
    } else {
        loadVariablesNum("form.php", 0, "POST");
        gotoAndStop(2);
       
    }
}


Mvh Søren
Avatar billede t-hviid Nybegynder
13. februar 2004 - 12:31 #1
Jeg bruger denne, det er til cgi - ved ikke om det gør en forskel.

on (release, keyPress "<Enter>") {
    if (!navn.length) {
        status = "Skriv venligst dit navn.";
    } else if (!email.length)  {
        status = "Skriv venligst din email-adresse";
    } else if (email.indexOf("@") == -1) {
        status = "Husk @ :-) "
    } else if (email.indexOf(".") == -1) {
        status = "Husk punktum . :-)"
    }else if (!meddel.length) {
        status = "Skriv venligst en meddelse";
    } else {
        subject = "Mail fra hjemmesiden";
        recipient = "fotografen@michaeldamsgaard.dk";
        loadVariablesNum("/cgi-sys/formmail.pl ", "", "POST");
        navn = "";
        email = "";
        meddel = "";
        status = "";
        gotoAndPlay("tak");
    }
}
Avatar billede nikolajdu Nybegynder
13. februar 2004 - 12:32 #2
// Der er ingen grund til kun at checke for om der findes et @ - Hvad så hvis der findes 2 - Så er du stadigt på ski....

function checkEmail(e) {
    trace("tjekker")
    var legalChars = "abcdefghijklmnopqrstuvwxyz0123456789";
    var allChars = legalChars+"-_";
    var pos = 0;
    var count;
    var start;
    var lastDot = e.lastIndexOf(".");
    lastDot = lastDot == -1 ? e.length-1 : lastDot;
   
    while (pos < lastDot && e.charAt(pos) != "@") {
        if (pos != 0 && e.charAt(pos++) != ".") {
            return false;
        }
        if (legalChars.indexOf(e.charAt(pos++)) == -1) {
            return false;   
        }
        while(pos < lastDot && allChars.indexOf(e.charAt(pos)) != -1) {
            pos++;
        }
    }
    if (e.charAt(pos++) != "@") {
        return false;
    }
    start = pos;
    while (pos != lastDot) {
        if (pos != start && e.charAt(pos++) != ".") {
            return false;
        }
        if (legalChars.indexOf(e.charAt(pos++)) == -1) {
            return false;   
        }
        while(pos != lastDot && allChars.indexOf(e.charAt(pos)) != -1) {
            pos++;
        }
    }
    pos++;
    for(count = 0; pos < e.length && legalChars.indexOf(e.charAt(pos)) != -1; count++) {
        pos++;
    }
    return pos == e.length && count >= 2;
}

Og så på knappen :

on (release) {
    if(checkEmail(navn)){
      loadVariablesNum("form.php", 0, "POST");
        gotoAndStop(2);
    }else{
        stop();
    }
}
Avatar billede nikolajdu Nybegynder
13. februar 2004 - 12:34 #3
Ups.

on (release) {
    if(checkEmail(name)){
      loadVariablesNum("form.php", 0, "POST");
        gotoAndStop(2);
    }else{
        stop();
    }
}
Avatar billede jepsen83 Nybegynder
13. februar 2004 - 12:35 #4
hvor skal jeg indsætte det første (det som ikke skal på knappen)?
Avatar billede nikolajdu Nybegynder
13. februar 2004 - 12:36 #5
Det skal bare ligge i samme frame som knapperne. (ikke på knapperne men på tidslinien)
Avatar billede nikolajdu Nybegynder
13. februar 2004 - 12:39 #6
thviid - Det gør ingen forskel om hvor flash skal sende data hen - Det her foregår jo inde i flashen. :))
Avatar billede jepsen83 Nybegynder
13. februar 2004 - 12:45 #7
nu sker der ikke en skid når jeg trykker på knappen??
Avatar billede nikolajdu Nybegynder
13. februar 2004 - 12:53 #8
Jamen det er vidst min and. Jeg tester for en email i "name" feltet....

on (release) {
    if(checkEmail(name) && name.length>=1){
      loadVariablesNum("form.php", 0, "POST");
        gotoAndStop(2);
    }else{
        stop();
    }
}

Hvis du tester inde fra flashen skal output boksen poppe op og skrive "tjekker" - Hvis ikke den gør det er placeringen af dit script forkert.
Avatar billede nikolajdu Nybegynder
13. februar 2004 - 12:54 #9
Og prøver lige igen :

on (release) {
    if(checkEmail(email) && name.length>=1){
      loadVariablesNum("form.php", 0, "POST");
        gotoAndStop(2);
    }else{
        stop();
    }
}
Avatar billede jepsen83 Nybegynder
13. februar 2004 - 18:51 #10
nu ser det næsten ud til at virke! Den sender sender i hvertfald ikke mailen før mail-formen er udfyldt med både "@" og ".", men nu bliver det indtastede navn ikke medsendt til mailen??

Kan man evt. også få den til at udskrive en fejlmeddelelse hvis mail-formen ikke er indtastet korrekt??

Mvh Søren
Avatar billede nikolajdu Nybegynder
13. februar 2004 - 19:37 #11
Så kan du passende bruge t-hviid´s version - Der skal du "bare" lave et tekstfe med variabel navn "status"
Avatar billede nikolajdu Nybegynder
06. august 2004 - 09:56 #12
nå ikke
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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