Avatar billede Slettet bruger
02. marts 2007 - 02:34 Der er 5 kommentarer og
1 løsning

Simpelt problem i ASP kode

Jeg er lige startet på at lære ASP i nat og er stødt ind i et problem, det lyder som følgende:

<%
dim logg
dim pas
dim ID

'Request.Form("ID")

ID = Request.Form("ID")
' 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("virksomheder.mdb")
Conn.Open DSN

' SQL forespørgsel
strSQL = "Select * From Virksomhed Where ID = 'ID'"
' Udfør forespørgsel (rs indeholder nu resultatet)

Der er mere men det vist ikke nødvendigt at vise%>

Problemet er at den ud fra ID skal tjekke brugernavn og password, men jeg ved ikke hvad jeg skal skrive der hvor der står "strSQL = "Select * From Virksomhed Where ID = 'ID'",
Jeg har hentet ID fra formen vhja. "ID = Request.Form("ID")" nogen der kan hjælpe med hvordan det skal stå i "Select * From Virksomhed Where ID = 'ID'" så det kommer til at virke.

På forhånd tak
Avatar billede Slettet bruger
02. marts 2007 - 02:36 #1
Altså det jeg skal vide er om det der skal stå

"strSQL = "Select * From Virksomhed Where ID = 'ID'",
eller
"strSQL = "Select * From Virksomhed Where ID = ID",
eller
"strSQL = "Select * From Virksomhed Where ID = & ID &",
eller noget andet, som det nok er, da jeg har prøvet de muligheder...
Avatar billede -mundi- Nybegynder
02. marts 2007 - 02:36 #2
hvis id er et tal i databasen så
strSQL = "Select * From Virksomhed Where ID = " & replace(id,"'","''")

hvis det er et tekstfelt
strSQL = "Select * From Virksomhed Where ID = '" & replace(id,"'","''") &"'"
Avatar billede -mundi- Nybegynder
02. marts 2007 - 02:41 #3
en lille smule sent nu, så jeg svarer nok først en gang imorgen :-)
Avatar billede plx Nybegynder
02. marts 2007 - 03:14 #4
mundi bruger replace for at forhindre sql injection (vigtigt, så brug google).

Men i den første, hvor variablen ikke er omkranset af apostroffer, hjælper replace ikke noget. IsNumeric kan benyttes:


If Not IsNumeric(id) Then Repsonse.End 'afslut script

strSQL = "Select * From Virksomhed Where ID = " & CInt(id)
Avatar billede kalp Novice
02. marts 2007 - 08:09 #5
hvis forslagene ovenover ikke fungere skal du ændre request.form til request.querystring
Avatar billede Slettet bruger
02. marts 2007 - 08:22 #6
Tak for svar mundi, det virkede, også tak til jer andre.

Mundi du kunne vel ikke lige kort forkalere mig hvad det er du gør i

'" & replace(id,"'","''") &"'"

PS. det er tekstfelt
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