Avatar billede para7 Nybegynder
14. maj 2003 - 16:26 Der er 11 kommentarer og
1 løsning

Tilføje check af ugyldige tegn

Jeg har en funktion, der checker en form i et .asp web. Det vil være en katastrofe for databasen at nogen tastede ' eller & eller " osv. ind i Emne feltet.
Kan man ikke ret let tilføje check for dette. Altså i Emne feltet. Min funktion:


function valider0(form) {

if (form.Emne.value.length > 0 && form.Emne.value != "<%=BestillingFeltEmneTekst%>") { //er Emne udfyldt
  } else {
    alert ("Feltet <%=BestillingFeltEmneTekst%> skal udfyldes.");
    form.Emne.focus();
    return false;
  }

if (form.Email.value.length > 0 && form.Email.value != "skriv.email@her.dk") { //er Email udfyldt
  } else {
    alert("Feltet Email skal udfyldes");
    form.Email.focus();
    return false;
  }
  if (form.Email.value != "") { //Email er udfyldt, tjek adr.
  // if (!isEmail(form.Email.value)) {
    if (!EmailCheck(form.Email.value)) {
            //alert("Skriv venligst en rigtig email");
      form.Email.focus();
      return false;
  }
   
   
    if (form.PersonID.value.length > 0) { //er PersonID udfyldt
  } else {
    alert ("Feltet PersonID skal udfyldes.");
    form.PersonID.focus();
    return false;
  }
  if (form.PersonID.value != "") { //PersonID er udfyldt, tjek nr.
    if (!isValidCPR(form.PersonID.value)) {
      //alert("Skriv venligst et rigtigt PersonID");
      form.PersonID.focus();
      return false;
    }
  }
  return true; //ok alt er udfyldt korrekt
}
Avatar billede ohmish Nybegynder
14. maj 2003 - 16:32 #1
måske var det bedre at "validere" de farlige tegn... evt. med \ foran inden de smides i databasen.
Avatar billede para7 Nybegynder
14. maj 2003 - 16:39 #2
Det virker ellers fint andre steder, hvor jeg hare adopteret noget "good old FrontPage validering". Her er et udplug:

  if (theForm.URL.value.length > 128)
  {
    alert("Der må ikke være mere end 250 tegn i \"URL\" feltet.");
    theForm.URL.focus();
    return (false);
  }
    var checkOK = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz/@€£$%&?:.-+1234567890_=";
  var checkStr = theForm.URL.value;
  var allValid = true;
  for (i = 0;  i < checkStr.length;  i++)
  {
    ch = checkStr.charAt(i);
    for (j = 0;  j < checkOK.length;  j++)
      if (ch == checkOK.charAt(j))
        break;
    if (j == checkOK.length)
    {
      allValid = false;
      break;
    }
  }
  if (!allValid)
  {
    alert("Der er ugyldige tegn i \"URL\" feltet.");
    theForm.URL.focus();
    return (false);
   
  }
  return (true);
}
Avatar billede fri-hash Nybegynder
14. maj 2003 - 16:46 #3
når du siger databasen må der være serversidescripting involveret, right?

Når du samtidig siger "Det vil være en katastrofe for databasen", så bør du overveje at lave valideringen, eller vitale dele heraf, serverside.

prøv at slå javascript fra i din browser, så submit formen med ugyldige data - eller det vil sige lad være med det, men foretil dig en bruger gør det
Avatar billede para7 Nybegynder
14. maj 2003 - 16:56 #4
Nå ja, det ville jo ikke være godt. Men jeg er kørt fast i serverside validering. Har prøvet at replace(tekst,"'","''") og replace(tekst,"'","") for at få indskrevet, men der opstår fejl: Der er en syntaksfejl, fordi der mangler en operator. i forespørgselsudtrykket. Jeg kan ikke rigtig replace. % bliver til procent25 fx.
Avatar billede para7 Nybegynder
14. maj 2003 - 16:57 #5
PS: Jeg tror helt alvorligt at alle mine tegn, jeg har pastet her har slettet pointtallet!
Avatar billede para7 Nybegynder
14. maj 2003 - 16:59 #6
Så nu er der point igen..
Avatar billede para7 Nybegynder
14. maj 2003 - 17:13 #7
Jeg kan godt se det er et problem hvis folk har slået javascript fra, men kan man så ikke lave et nægt-adgang script, der detecter om det er slået til?
Avatar billede roenving Novice
14. maj 2003 - 17:25 #8
Næeh, hvad ville du programmere det i ?-| javascript ???-|
Avatar billede roenving Novice
14. maj 2003 - 17:30 #9
Det smarte ville være at lave en regular expression du matchede imod -- der er jeg desværre næsten helt blank -- ideen er den rigtige ...
Avatar billede para7 Nybegynder
14. maj 2003 - 17:39 #10
Ja, nu er jeg tilbage. Tak for ideerne. Det med at programmere det, måske der var noget browseren sendte om at det ene og det andet var slået til og fra. Nå men jeg laver hvad jeg kan med serverside. Har forsøgt at slå javascript fra i IE 6 browseren, men det kan jeg godtnok ikke finde. Så satte jeg på højeste sikkerhedsniveau. Men stadig virkede javascript.
Avatar billede para7 Nybegynder
14. maj 2003 - 17:52 #11
Spørgsmålet er vist gået dødt,så jeg lukker
Avatar billede fri-hash Nybegynder
14. maj 2003 - 19:45 #12
det slås fra her:
funktioner -> internetindstillinger -> faneblad sikkerhed -> knap brugerdefineret niveau -> allernederst :
deaktiver Actice scripting
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

IT-JOB

Politiets Efterretningstjeneste

AI/ML udvikler i PET

Paychex Europe

Scrum Master

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Kryptokustode til opbygning af Forsvarets nye IT-platform

Everllence

Data Engineer

Banedanmark

ERTMS Test Manager