Avatar billede Slettet bruger
03. februar 2002 - 21:02 Der er 11 kommentarer og
2 løsninger

God validering

Hej med jer

Jeg skal bruge en validering som kan følgende:

1. Tjekke et om en email er en gyldig email

2. Tjekke at der kun er indtastet en numerisk værdi i et input felt

3. Tjekke at der er en numerisk værdi på max 4 karakterer i et felt

Hvis disse betingelser er opfyldt må det hele smækkes i db'en - hvis ikke skal brugeren naturligvis ha' en forklaring på hvad der gik galt.
Avatar billede rune_c Nybegynder
03. februar 2002 - 21:08 #1
1:

http://activedeveloper.dk/download/default.asp?mode=showdownload&id=140

2 + 3.

<input type="text" name="test">

<%
if isnumeric(request.form("test")) then
  if len(request.form("test")) > 4 then
      'Fejl
  end if
end if
%>

/Rune
Avatar billede Slettet bruger
03. februar 2002 - 21:12 #2
rune > kigger lige lidt på det....
Avatar billede Slettet bruger
03. februar 2002 - 21:20 #3
rune > Jeg har flg kode :

****************************************
if Request.ServerVariables("REQUEST_METHOD") = "POST" then


Navn = Request.form("Navn")
Brugernavn = Request.form("Brugernavn")
Password = Request.form("Password")
Adresse = Request.form("Adresse")
Postnummer = Request.form("Postnummer")
Bynavn = Request.form("Bynavn")
Telefonnummer = Request.form("Telefonnummer")
Email = Request.form("Email")
Timenow = Now()
Godkendt = False

SQL = "INSERT INTO tbl_users (Brugernavn, Password, Email, Navn, Adresse, Postnummer, Bynavn, Telefonnummer, PID, Timenow, Godkendt) VALUES ('" & Brugernavn & "', '" & Password & "', '" & Email & "', '" & Navn &"', '" & Adresse &"', " & Postnummer &", '" & Bynavn &"', " & Telefonnummer &", '" & IDpas &"', '" & Timenow & "', " & IIf(Godkendt, "True", "False") &  ")"

Conn.execute(SQL)
****************************************
Hvor skal lortet sættes ind? Jeg forestiller mig at det skal ind umiddelbart efter jeg har deklareret mine vars???
Avatar billede rune_c Nybegynder
03. februar 2002 - 21:31 #4
Jeg går ud fra at det er feltet postnummer du vil tjekke og er 4 tal

<%
if Request.ServerVariables("REQUEST_METHOD") = "POST" then

Navn = Request.form("Navn")
Brugernavn = Request.form("Brugernavn")
Password = Request.form("Password")
Adresse = Request.form("Adresse")
Postnummer = Request.form("Postnummer")
Bynavn = Request.form("Bynavn")
Telefonnummer = Request.form("Telefonnummer")
Email = Request.form("Email")
Timenow = Now()
Godkendt = False


if isnumeric(Postnummer) then
  if not len(Postnummer) > 4 then
      SQL = "INSERT INTO tbl_users (Brugernavn, Password, Email, Navn, Adresse, Postnummer, Bynavn, Telefonnummer, PID, Timenow, Godkendt) VALUES ('" & Brugernavn & "', '" & Password & "', '" & Email & "', '" & Navn &"', '" & Adresse &"', " & Postnummer &", '" & Bynavn &"', " & Telefonnummer &", '" & IDpas &"', '" & Timenow & "', " & IIf(Godkendt, "True", "False") &  ")"

    Conn.execute(SQL)
  end if
end if

end if
%>
Avatar billede Slettet bruger
03. februar 2002 - 21:48 #5
Hvis jeg indsætter
if isnumeric(Postnummer) then
  if not len(Postnummer) > 4 then
    Response.write "<p>FEJL</p>"
  else
SQL....

Sker der ikke en skid...
Avatar billede Slettet bruger
03. februar 2002 - 21:49 #6
Altså den kommer hverken m fejl eller smækker indhold i db...
Avatar billede Slettet bruger
03. februar 2002 - 21:52 #7
Det må da være smartere at lave

if isnumeric(Postnummer) then
  if len(Postnummer) > 4 then
    Response.write "<p>FEJL</p>"
  else

eller hvad?
Avatar billede rune_c Nybegynder
03. februar 2002 - 22:04 #8
den sidste er til at foretrække...
Avatar billede rune_c Nybegynder
03. februar 2002 - 22:09 #9
du kan også vælge at sætte en maxlength på din input:

<input type="text" name="Postnummer" maxlength="4">

Du skal vel også gøre dette ved telefonnumret:

<input type="text" name="Telefonnummer" maxlength="8">
Avatar billede Slettet bruger
03. februar 2002 - 22:35 #10
rune > Det sidstnævnte er meget smart, men det giver jo absolut ingen garanti for at det kun bliver numeriske værdier ):
Avatar billede rune_c Nybegynder
03. februar 2002 - 23:13 #11
nej men så behøver du ikke at teste for det i dit script! Det er bare en smagssag
Avatar billede coltau Juniormester
04. februar 2002 - 00:18 #12
Kommandoen isNumeric dur ikke umiddelbart til at kontrollere med.
isNumeric returnere true hvis Request.QueryString("postnr") er blank. ! (og dermed bliver Postnummer blank.)
Den skal se således ud:

if isnumeric(CStr(Postnummer)) then
  if CInt(Postnummer) < 1000 or CInt(Postnummer) > 9999 then
    Response.write "<p>FEJL</p>"
  else

Med mindre du vil acceptere udenlandske postnumre som eks: 100 = Thorshavn

En kontrol af e-mail skal mindst kontrollere for følgende:
1. Kun et @ og kun et .
2. Noget før @ og noget efter .
3. og noget i mellem @ og .
Avatar billede rune_c Nybegynder
05. februar 2002 - 15:33 #13
kunne også lave et klient script der tjekkede om den var tom, før man overhovedet begyndte at sende oplysningerne.
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
Kurser inden for grundlæggende programmering

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