Avatar billede bimbo111 Nybegynder
16. oktober 2005 - 22:16 Der er 11 kommentarer og
1 løsning

Bugspotting - Min kode duer ikke

Nogen der kan soptte bugs i det her ??

<%


' Databaseforbindelse - husk at angive sti til din database
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("main.mdb")
Conn.Open DSN

dim passfail, usefail, mailfail

mailfail = 0

if request.form("password1") != request.form("password2") then
passfail = 1
else
passfail = 0
end if


' SQL forespørgsel
strSQL1 = "Select * from users where  = '" & request.form("brugernavn") & "'"
' Udfør forespørgsel (rs indeholder nu resultatet)
Set rs = Conn.Execute(strSQL1)


if rs.EOF then
usefail = 1
else
usefail = 0
end if

if (mailfail = 0 AND passfail = 0 AND usefail = 0) then
strSQL = "Insert into users (name, password, mail)"
strSQL = strSQL & "values(name='" & request.form("brugernavn") & "', password='" & request.form("password1") & "', mail='" & request.form("mail") & "')"

' Luk databaseforbindelse
Conn.Close
Set Conn = Nothing
else
response.redirect("index.asp?m=" & mailfail & "&p=" & passfail & "&u=" & usefail)
end if
%>
Avatar billede bimbo111 Nybegynder
16. oktober 2005 - 22:18 #1
Har rettet alle strSQL til strSQL1
Avatar billede erikjacobsen Ekspert
16. oktober 2005 - 22:24 #2
Hvordan ytrer fejlen sig?
Avatar billede hmortensen Nybegynder
16. oktober 2005 - 22:25 #3
strSQL1 = "Select * from users where  = '" & request.form("brugernavn") & "'"

Mangler et felt at sammenligne værdien med.
Avatar billede erikjacobsen Ekspert
16. oktober 2005 - 22:26 #4
Man plejer ikke at skrive

    if request.form("password1") != request.form("password2") then

men

    if request.form("password1") <> request.form("password2") then
Avatar billede erikjacobsen Ekspert
16. oktober 2005 - 22:27 #5
Syntaksen for en INSERT er ikke den du skriver, men helt uden =-tegn:

strSQL = "Insert into users (name, password, mail)"
strSQL = strSQL & "values('" & request.form("brugernavn") & "', '" & request.form("password1") & "', '" & request.form("mail") & "')"
Avatar billede erikjacobsen Ekspert
16. oktober 2005 - 22:34 #6
...og læs så på nettet om "SQL-injection" inden du lægger din kode på nettet til fri afbenyttelse ;)
Avatar billede bimbo111 Nybegynder
17. oktober 2005 - 10:02 #7
10 point til erikjacobsen og fem til hmortensen. ok ?
Avatar billede bimbo111 Nybegynder
17. oktober 2005 - 10:21 #8
Eller... det duer sq ikke endnu tag lige et axtra kik :

<%


' Databaseforbindelse - husk at angive sti til din database
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("main.mdb")
Conn.Open DSN

dim passfail, usefail, mailfail

mailfail = 0

if request.form("password1") <> request.form("password2") then
passfail = 1
else
passfail = 0
end if


' SQL forespørgsel
strSQL1 = "Select * from users where name='" & request.form("brugernavn") & "'"
' Udfør forespørgsel (rs indeholder nu resultatet)
Set rs = Conn.Execute(strSQL1)


if rs.EOF then
usefail = 0
else
usefail = 1
end if

if (mailfail = 0 AND passfail = 0 AND usefail = 0) then
strSQL1 = "Insert into users (name, password, mail)"
strSQL1 = strSQL1 & "values(" & request.form("brugernavn") & ", " & request.form("password1") & ", " & request.form("mail") & ")"
' Luk databaseforbindelse
Conn.Close
Set Conn = Nothing
else
response.redirect("index.asp?m=" & mailfail & "&p=" & passfail & "&u=" & usefail)
end if
%>
Avatar billede bimbo111 Nybegynder
17. oktober 2005 - 10:21 #9
extra*
Avatar billede erikjacobsen Ekspert
17. oktober 2005 - 13:19 #10
Prøv at gøre som vi skriver (det har du ikke gjort), og forklar hvad det er der ikke virker.
Avatar billede bimbo111 Nybegynder
17. oktober 2005 - 21:31 #11
Det har jeg da gjordt ? Hvad mangler jeg ?
Avatar billede bimbo111 Nybegynder
16. juni 2007 - 22:25 #12
Det er vist på tide at lukke her...
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