Hans Christian Bayer skrev:
> strNavn = request.form.item("login")
> strPassword = request.form.item("password")
Note: Du behøver ikke at skrive .item - Request.Form("foo") og
Request.Form.item("foo") giver samme resultat.
> strSQL = "Select * from personer Where Fornavn = strNavn AND
> Efternavn = strPassword"
Her går det galt. Du skal indsætte værdierne af dine variable i
sql-sætningen - ovenfor bruger du blot deres navne. Samtidig skal
værdierne sættes i anførselstegn (fordi det er tekststrenge) - det
er på grund af de manglende anførselstegn du får den nuværende
fejlmeddelelse.
Hvis vi starter med at sætte anførselstegnene ind, ser kodelinjen
sådan ud:
strSQL = "Select * from personer Where Fornavn = 'strNavn' AND
Efternavn = 'strPassword'"
Med denne formulering kan din kode godt køre, men den er ikke så
meget værd før det er værdierne fra din form der bruges som
udvælgelseskriterium.
For at sætte indholdet af dine variable ind kan du benytte
strengsammensætning i asp.
Linjen:
x = "Hej med" & " dig"
- tildeler værdien "Hej med dig" til x.
For at få dine variabler puttet ind i sqlsætningen klipper vi den
over de to steder de skal puttes ind:
strSQL = "Select * from personer Where Fornavn = '" & strNavn
& "' AND Efternavn = '" & strPassword & "'"
Nu er sætningen sådan set køreklar. Dog bør du sikre dig mod fejl
og misbrug ved at tjekke dine variable for anførselstegn. Et enkelt
anførselstegn inde i en variabel kan få databasekaldet til at fejle
- eller i værste fald få databasen til at gøre noget andet end det
du forventer. Det er en god ide at vænne sig til altid at lave
sådan et tjek når man henter valgfrie tekster fra en form. Hvis du
erstatter de to variabeltildelingslinjer (citeret øverst i dette
indlæg) med følgende:
strNavn = Replace(request.form("login"), "'", "''")
strPassword = Replace(request.form("password"), "'", "''")
- er du sikker på at slippe for problemer med anførselstegn.
--
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