Avatar billede miwu.tk Nybegynder
05. marts 2004 - 16:09 Der er 17 kommentarer og
1 løsning

Validering af forms

Jeg er igang med at lave en oprettelses side for brugere til mit kommende community. Derfor vil jeg gerne have valideret de forskellige felter for at kunne sikkre mig forskellige ting. Her er følgende af mine ønsker:

1. Hvis Kode1 = Kode2 så vis ????.asp
2. Hvis Brugernavn = data allerede skrevet i DB, så vis ????.asp

Jeg har indtil videre kun prøvet på at validerer enkelt ting af de ønsker jeg har ovenover. Her er min sourcecode:

  Brugernavn = Replace(Trim(Request.Form("brugernavn")), "'", "''")
  Kode1 = Replace(Trim(Request.Form("kode1")), "'", "''")
  Kode2 = Replace(Trim(Request.Form("kode2")), "'", "''")

  If Brugernavn = "" Or Kode1 = "" Or Kode2 = "" Then Response.Redirect "utility.asp?method=fejl"

  If Kode1 = Kode2 then response.Redirect "utility.asp?method=fejl"

   
  Set Conn = Server.CreateObject("ADODB.Connection")
    DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
    DSN = DSN & "DBQ=" & Server.MapPath(".../db/login.mdb")
    Conn.Open DSN

        Dim IP
        IP = Request.Servervariables("REMOTE_ADDR")


strSQL = "Insert into login (brugernavn, password, dato, tid, ip) values('" &Brugernavn& "','"  &Kode1& "', '"&date()&"', '"& time&"', '" & (IP) & "')"
' SQL sætning eksekveres
Conn.Execute(strSQL)

' Luk databaseforbindelse
Conn.Close
Set Conn = Nothing

..Jeg får ingen fejl visninger, men min "hvis kode1 = kode2 så..." virker ikke. Jeg har ikke forsøgt at tilføje validering af hvis brugernavn skulle vær optaget endnu, men ønsker gerne bud på løsninger.

Håber jeg har formuleret mig på forståeligvis?
Avatar billede swaxi Nybegynder
05. marts 2004 - 16:24 #1
prøv, at erstatte :
If Brugernavn = "" Or Kode1 = "" Or Kode2 = "" Then Response.Redirect "utility.asp?method=fejl"

med :
If (Brugernavn = "") Or (Kode1 = "") Or (Kode2 = "") Then Response.Redirect "utility.asp?method=fejl"
Avatar billede miwu.tk Nybegynder
05. marts 2004 - 16:30 #2
Den linje fejler intet! Det er primært den her:

If Kode1 = Kode2 then response.Redirect "utility.asp?method=fejl"
Avatar billede swaxi Nybegynder
05. marts 2004 - 16:48 #3
nu er jeg ikke så meget hjemme i asp, så jeg skyder lidt i blinde, men når du sammenligner to variable, skal du bruge et sammenlignings-lighedstegn - som er forskelligt fra et tildelings-lighedstegn

altså :
a = b    er en tildeling - variablen a får den værdi, som b har
a == b    er en sammenligning og bruges eks. i forbindelse med et if ... then statement

derfor vil jeg tro, at din linie :
If Kode1 = Kode2 then response.Redirect "utility.asp?method=fejl"

skal hedde :
If Kode1 == Kode2 then response.Redirect "utility.asp?method=fejl"
Avatar billede miwu.tk Nybegynder
05. marts 2004 - 20:07 #4
Hehe, det lyder meget flot, men fungerer stadig ikke :/

Mon EAGLE-MAN kommer til undsætning? ;)
Avatar billede the_bma_man Nybegynder
05. marts 2004 - 23:28 #5
Hvad hvis du udskriver en linie tekst i stedet for at lave en redirect?
Avatar billede miwu.tk Nybegynder
05. marts 2004 - 23:33 #6
Sker stadig intet hvis jeg gør som du siger, men det burde alligevel ikke have nogen betydning.
Avatar billede the_bma_man Nybegynder
05. marts 2004 - 23:47 #7
Hmm - for træt til lige at kigge mere på det nu ...
Avatar billede miwu.tk Nybegynder
06. marts 2004 - 11:49 #8
Fandt lige en fejl fra min side. Istedet for at den skal sige:

if kode1 = kode 2 then response.redirect "lort.asp"

Vil jeg gerne have at hvis kode1 = kode2 så skal den begynde at gemme mine dataer. Håber I forstår hvad jeg mener?
Avatar billede swaxi Nybegynder
06. marts 2004 - 12:03 #9
har du prøvet, at erstatte dine tildelingslighedstegn med sammenligningslighedstegn ? (begge steder)
Avatar billede miwu.tk Nybegynder
06. marts 2004 - 12:06 #10
ja, men det hjælper stadig ikke på problemet da jeg ikke ved hvad jeg skal putte bagved "then" så den gemmer dataer hvis kode1 = kode2

Lader jeg den stå tom melder den fejl
Avatar billede ellebaek Nybegynder
06. marts 2004 - 12:12 #11
Brugernavn = Replace(Trim(Request.Form("brugernavn")), "'", "''")
  Kode1 = Replace(Trim(Request.Form("kode1")), "'", "''")
  Kode2 = Replace(Trim(Request.Form("kode2")), "'", "''")

  If Brugernavn = "" Or Kode1 = "" Or Kode2 = "" Then Response.Redirect "utility.asp?method=fejl"

If Kode1 = Kode2 then response.Redirect "utility.asp?method=fejl" end if

   
  Set Conn = Server.CreateObject("ADODB.Connection")
  set rs = server.createObject("adodb.Connection")
    DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
    DSN = DSN & "DBQ=" & Server.MapPath(".../db/login.mdb")
    Conn.Open DSN
    rs.open DSN

        Dim IP
        IP = Request.Servervariables("REMOTE_ADDR")

sql = "select * from login where brugernavn = '"&Brugernavn&"'"
set rs = rs.execute(sql)
if rs.eof then
strSQL = "Insert into login (brugernavn, password, dato, tid, ip) values('" &Brugernavn& "','"  &Kode1& "', '"&date()&"', '"& time&"', '" & (IP) & "')"
' SQL sætning eksekveres
Conn.Execute(strSQL)
response.write "Brugeren er oprettet"
else
response.write "Der findes allerede en bruger med det navn"
end if

' Luk databaseforbindelse
Conn.Close
Set Conn = Nothing


Jeg har bygget en metode ind til at chekke om der allerede er en bruger der har det brugernavn der forsøges oprettet, er der ikke det bliver brugeren oprettet.

Men mht. kode1 og kode2 skal de 2 koder så ikke være lig hinanden for at brugeren kan oprettes, skal det ikke være en sikkerhed for at brugeren er sikker på hvilken kode han har skrevet ?
hvis det skal være det, så skal denne linie:
If Kode1 = Kode2 then response.Redirect "utility.asp?method=fejl" end if
rettes til:
If not Kode1 = Kode2 then response.Redirect "utility.asp?method=fejl" end if
Avatar billede ellebaek Nybegynder
06. marts 2004 - 12:14 #12
de end iffer jeg har sat på er ikke nødvendige, men jeg bruger dem fordi jeg synes det gør scriptet mere overskueligt, hvis der fx. står:

If not Kode1 = Kode2
  then response.Redirect "utility.asp?method=fejl"
end if

i stedet for:
If not Kode1 = Kode2 then response.Redirect "utility.asp?method=fejl"
Avatar billede miwu.tk Nybegynder
06. marts 2004 - 12:15 #13
Jo, som jeg vist også har tilføjet før var det en fejl fra min side. Men mange tak for hjælpen! Vil lige teste dit svar :)
Avatar billede miwu.tk Nybegynder
06. marts 2004 - 12:24 #14
Det ser
Avatar billede miwu.tk Nybegynder
06. marts 2004 - 12:25 #15
hov... det ser ud til at virke! mange tak.. her har du dine pts :)
Avatar billede miwu.tk Nybegynder
06. marts 2004 - 12:31 #16
argh... den gider ikke ud dele pts!
Avatar billede miwu.tk Nybegynder
06. marts 2004 - 12:32 #17
sådan :D
Avatar billede ellebaek Nybegynder
06. marts 2004 - 12:34 #18
Takker for points c",)
..Ellebæk!
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