Avatar billede xitmorphiux Nybegynder
26. juli 2006 - 10:08 Der er 7 kommentarer

Simpel validering på en TextBox.

Jeg sidder og roder med noget validering på en textbox. Mit problem er at jeg har en "kontakt os for mere info" funktion på min hjememside og folk bruger formen til at sende spam på. Jeg vil gerne have at når vedkommende skriver special tegn: º°üÀ¨×¢²áÏã¸Û¹«Ë¾Ãû³Æ²é²áºËÊ eller URL strenge så skal den ikke sende mailen. Tror det er rimelig simpelt.
Avatar billede xitmorphiux Nybegynder
26. juli 2006 - 10:18 #1
ideen med det er at den stadig skal sige "sending... " men hvis man har skrevet specialtegn skal den bare ikke sende den, fordi så tror de at den stadig kan bruges til at sende på.
Avatar billede mrbonus Novice
26. juli 2006 - 10:45 #2
jeg har denne har javascript metode, den validerer dog kun på tal, men det er bare lige at tilpasse den til bogstaver også, og de tegner du tillader.

function isInteger(inputVal)
{
    inputStr = inputVal.toString();
    for (var i = 0; i < inputStr.length; i++)
    {
        var oneChar = inputStr.charAt(i);
        if (i == 0 && oneChar == "-")
        {
            continue;
        }
        if (oneChar < "0" || oneChar > "9")
        {
            return false;
        }
    }
    return true;
}

noget i denne her retning

function isAllowed(inputVal)
{
    inputStr = inputVal.toString();
    for (var i = 0; i < inputStr.length; i++)
    {
        var oneChar = inputStr.charAt(i);
        if (oneChar >= "0" && oneChar <= "9")
        {
            continue;
        }
        else if (oneChar >= "a" && oneChar <= "z")
        {
            continue;
        }
        else if (oneChar = "\n")
        {
            continue;
        }
        else
        {
            return false;
        }
    }
    return true;
}
Avatar billede mrbonus Novice
26. juli 2006 - 10:50 #3
denne her er selvfølgelig ikke nødvendig hvis din textbox ikke er multiline, da "\n" betyder "Ny linie"

else if (oneChar = "\n")
{
    continue;
}
Avatar billede the_party_dog Nybegynder
26. juli 2006 - 11:25 #4
xitmorphiux> For at holde dot.net ånden, ville jeg benytte mig af regularexpression validators som er et control du kan tilføje til din side.

Den vej igennem så skal du ikke igennem en længere række if, da den simpelthen tjekker det for dig. Den understøtter clientside validation, så den validere indholdet inden siden bliver submit'et.
Avatar billede mrbonus Novice
26. juli 2006 - 12:24 #5
Ja, men den laver bare javascript for dig, hvis du laver din egen javascript, har du fuld kontrol over det, da jeg er mest til at have fuld kontrol ved jeg ikke om der findes noget sådan funktionalitet i regularexpression , men det kan du da kontrollere hvis du vil.
Avatar billede the_party_dog Nybegynder
26. juli 2006 - 12:32 #6
mrbonus> Du har ret, den opretter et javascript for dig. Men det javascript skal du ikke tænke på, da du bare skal sørge for at lave et regex som passer til dig. Nogen har nemmere ved at rode med Regex, end at starte med et javascript.

Men jeg skrev det også bare som indlæg til at hvis han ville holde det hele i dot.net ånden, og ville have det hele som objekter og controls. Det vil måske give mere overblik når han skal vedligeholde det om 1 år, da han måske ikke lige går og huske på det javascript han har lavet.

Mens ellers kan jeg godt se dit argument omkring at have fuld kontrol, men det kan du nok opnå på samme måde, hvis du ellers laver dit regex gennemtænkt.
Avatar billede xitmorphiux Nybegynder
26. juli 2006 - 13:00 #7
Hej folkens jeg har selv fundet en rimelig god løsning:

if (txtSubject.Text.Trim().Contains("Ã")){message.Text = ("sending...");}
        else if (txtSubject.Text.Trim().Contains("fuck")) { message.Text = ("sending..."); }
        else if (txtSubject.Text.Trim().Contains("µ")) { message.Text = ("sending..."); }
        else if (txtSubject.Text.Trim().Contains("Ð")) { message.Text = ("sending..."); }
        else if (txtSubject.Text.Trim().Contains("¢")) { message.Text = ("sending..."); }
        else if (txtSubject.Text.Trim().Contains("Ï")) { message.Text = ("sending..."); }
        else if (txtSubject.Text.Trim().Contains("¿")) { message.Text = ("sending..."); }
        else if (txtSubject.Text.Trim().Contains("www")) { message.Text = ("sending..."); }
        else if (txtSubject.Text.Trim().Contains("<")) { message.Text = ("sending..."); }
        else if (txtSubject.Text.Trim().Contains(">")) { message.Text = ("sending..."); }
        else if (txtSubject.Text.Trim().Contains("http")) { message.Text = ("sending..."); }

        else
            {
                  message.text =("Sending....");
                  //Bruger godkendt så send skidtet..
            }

Jeg giver brugeren teksten Sending... for at indikere at det stadig virker, da det vil give vedkommende tanken om at det stadig virker, og derhved stadig vil blive brugt til at spame på, men virker det hmmm... nope.. ;-) snydt... hehe..
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