/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Hjælp, form til database.
Fra : Thomas


Dato : 03-01-06 08:48

Er der en der kan se, hvad der er galt her.

   
If Action = "set_user_pass" Then

' kontroler info
   If Login = "" Then
      IsError = "Yes"
      Response.Write("<li><font color=""red"">Du skal skrive en
Brugernavn.</font>")
   End If
   
   If Pass1 = "" Then
   IsError = "Yes"
      Response.Write("<li><font color=""red"">Du skal skrive en
Adgangskode.</font>")
   End If
   
End If   

If Action = "set_user_pass" And IsError <> "Yes" Then

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

' SQL sætning opbygges
strSQL = "Insert into Users (Userid,Password) values('" &
Request.Form("Login") & Request.Form("Pass1") & "')"
            
' SQL sætning eksekveres
Conn.Execute(strSQL)

' Luk databaseforbindelse
Conn.Close
Set Conn = Nothing
end If

Der kommer ingen fejl, men der kommer heller ikke noget
Brugernavn eller Adgangskode i databasen.

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
Jens Gyldenkærne Cla~ (03-01-2006)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 03-01-06 18:24

Thomas skrev:

> Er der en der kan se, hvad der er galt her.

Der er mange muligheder.

> If Action = "set_user_pass" Then

Først og fremmest sker der ikke noget medmindre at Action =
"set_user_pass" (i hvert fald ikke i den kodestump du har vist
her).

Smæk nogle response.write-linjer ind så du kan se hvilke løkkedele
du havner i - eller udskriv de variabler du tester på:

Response.write "Action: " & Action & "<br>"

> IsError = "Yes"

En anden mulig fejl er at IsError ikke har nogen værdi medmindre
der er fejl. Start med at initialisere den med fx IsError = "No".

I øvrigt er en boolesk type (sand/falsk) oplagt at bruge her:

   ' Initialisering (ingen fejl)
   IsError = False


   ' Hvis vi opdager en fejl (fx manglende brugernavn)
   IsError = True


   ' Test om der er fejl: (nb: IsError svarer til IsError = True)
   If IsError Then
       ' Hurra - ingen fejl
   Else
       ' Øv - fejl
   End If
   


> If Action = "set_user_pass" And IsError <> "Yes" Then

Indsæt fx checkpoint her:

   Reponse.write "Ingen fejl, klar til at skrive adgangskode"


> ' SQL sætning opbygges
> strSQL = "Insert into Users (Userid,Password) values('" &
> Request.Form("Login") & Request.Form("Pass1") & "')"

Ovenstående sætning er ikke sikret mod sql-injection. Det er ikke
her din aktuelle fejl ligger, men jeg vil anbefale dig at få
sætningen sikret alligevel.
Se evt. artiklen her: <http://asp-faq.dk/article/?id=95>.
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Tom Jensen (03-01-2006)
Kommentar
Fra : Tom Jensen


Dato : 03-01-06 18:37

Thomas skrev:

> If Action = "set_user_pass" And IsError <> "Yes" Then

Prøv at lægge det indtastede ind i nogle variabler inden du
laver SQL udtrykket og udskriv så indholdet af disse variabler:

Login = Request.Form("Login")
Pass1 = Request.Form("Pass1"
response.write "Login: " & Login & " Pass1: " & Pass1 & "<br>"


> ' SQL sætning opbygges
> strSQL = "Insert into Users (Userid,Password) values('" &
> Request.Form("Login") & Request.Form("Pass1") & "')"

'Udskriv SQL udtrykket
response.write "SQL: " & strSQL & "<br>"

Du kan altid udkommentere response.write sætningerne
når du har set værdierne.

Med venlig hilsen

Tom Jensen
www.ffsoft.dk
- Læs mere om asp og databaser her -

Niels-Jørgen Hvidber~ (03-01-2006)
Kommentar
Fra : Niels-Jørgen Hvidber~


Dato : 03-01-06 18:45

Thomas wrote in dk.edb.internet.webdesign.serverside.asp:
> Er der en der kan se, hvad der er galt her.
>
>    
> If Action = "set_user_pass" Then
>
> ' kontroler info
>    If Login = "" Then
>       IsError = "Yes"
>       Response.Write("<li><font color=""red"">Du skal skrive en
> Brugernavn.</font>")
>    End If
>    
>    If Pass1 = "" Then
>    IsError = "Yes"
>       Response.Write("<li><font color=""red"">Du skal skrive en
> Adgangskode.</font>")
>    End If
>    
> End If   
>
> If Action = "set_user_pass" And IsError <> "Yes" Then
>
> ' Databaseforbindelse
> Set Conn = Server.CreateObject("ADODB.Connection")
> DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
> DSN = DSN & "DBQ=" & Server.MapPath("/_admin/user.mdb")
> Conn.Open DSN
>
> ' SQL sætning opbygges
> strSQL = "Insert into Users (Userid,Password) values('" &
> Request.Form("Login") & Request.Form("Pass1") & "')"
>
Hmm, hurtig skud fra hoften, skal der ikke være komma mellem de 2
values ?
Request.Form("Login") & "," & Request.Form("Pass1") & "')"
Prøv med en response.write(strSQL)

> ' SQL sætning eksekveres
> Conn.Execute(strSQL)
>
> ' Luk databaseforbindelse
> Conn.Close
> Set Conn = Nothing
> end If
>
> Der kommer ingen fejl, men der kommer heller ikke noget
> Brugernavn eller Adgangskode i databasen.
>
> --
> Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
> - Pædagogiske tutorials på dansk
> - Kom godt i gang med koderne
> KLIK HER! => http://www.html.dk/tutorials


--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Thomas (06-01-2006)
Kommentar
Fra : Thomas


Dato : 06-01-06 09:59

Tak for hjælpen allesammen, det hjalp med lidt checkpoints og et
komma hist og pist.

Thomas

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408925
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste