Avatar billede KongKurs Juniormester
28. februar 2002 - 10:08 Der er 14 kommentarer og
1 løsning

Validering af uønskede tegn på login side.

Hejsa.

Jeg har en login side som er skrevet i ASP, men når jeg fx. taster flg. tegn "''" så får jeg denne besked:

Error Type:
Microsoft JET Database Engine (0x80040E14)
Syntax error in string in query expression 'Brugernavn = ''''''.
/admin/login.asp, line 24

Hvordan kan jeg undgå at få denne fejl? Udover selvfølgelig at lade var med at skrive det ;-)

Takker.

Mvh Frederik
Avatar billede fuldstop Nybegynder
28. februar 2002 - 10:15 #1
Du kan ændre tegnene automatisk inden de sættes ind i databasen.
<%
strTekst = Request.Form("Tekstfelt")
strTekst = Replace(strTekst, "'", "''")
%>
Avatar billede skumbaq Nybegynder
28. februar 2002 - 10:16 #2
Kan du bruge dette til noget ?

If InStr(1, TextBox1.Text, Chr(34)) > 0 Then

' her kommer du ind hvis tegn " er i teksten

End If
Avatar billede skumbaq Nybegynder
28. februar 2002 - 10:20 #3
TextBox1.Text skal selvfølge være Request.Form("Tekstfelt")
Avatar billede KongKurs Juniormester
28. februar 2002 - 10:22 #4
Ja, skumbag det tænkte jeg også lidt på.. Mit problem er at hvis jeg har en bruger som indtaster fx. '''' eller ''''''''' så får jeg denne fejl og det gælder sikkert for en masse andre tegn også. Så det jeg leder efter er nok mere en måde at få Request.form("brugernavn") ind i en streng som jeg kan validere som den er mod databasen. Jeg mener at have læst et sted hvad det var man skulle skrive men jeg har desværre glemt det nu ;-(

Men tak!

Mvh Frederik
Avatar billede fuldstop Nybegynder
28. februar 2002 - 10:36 #5
mcgyvercool>> Erstatter du alle ' (quote) med '' (dobble quote) skulle det gerne kunne indsættes i databasen uden fejl. Og alle dobble quote fortokelses af databasen som enkelt quote.
http://www.html.dk/tutorials/asp/lektion20.asp (se nederst på siden)
Avatar billede fuldstop Nybegynder
28. februar 2002 - 10:38 #6
svar ;o)
Avatar billede skumbaq Nybegynder
28. februar 2002 - 10:43 #7
Godt set fuldstop
Avatar billede KongKurs Juniormester
28. februar 2002 - 10:47 #8
Hej igen.

Det er ikke helt det som er problemet... Lad os sige du skal logge ind  med et brugernavn/kodeord og du skriver: Eskil' som brugernavn, så vil fejlen komme igen. Så jeg skal bruge en måde at validere dette felt uanset hvad der står i det. Dvs. det skal bare valideres, ikke indsættes i Db'en fordi så havde Replace() jo været oplagt..

Mvh Frederik
Avatar billede fuldstop Nybegynder
28. februar 2002 - 10:47 #9
mcgyvercool hvad er det du er på jagt efter, siden du afviser mit svar?
Avatar billede fuldstop Nybegynder
28. februar 2002 - 10:54 #10
Forstår ikke helt hvad du mener.
Avatar billede KongKurs Juniormester
28. februar 2002 - 11:02 #11
Okay.. Lad mig prøve at uddybe det lidt..

Jeg har en login side til mit website hvor der er to text felter. Det ene er til brugernavn og det andet til kodeord. Når jeg så fx taster flg. brugernavn: Eskild' får jeg denne besked fra min Access db:

Error Type:
Microsoft JET Database Engine (0x80040E14)
Syntax error in string in query expression 'Brugernavn = 'Eskild'''.
/admin/login.asp, line 24

Og det er fordi jeg har brugt tegnet ' i brugernavn. Så det jeg leder efter er en måde hvorpå jeg kan validere mit brugernavnfelt mod databasen UANSET om der er et ' tegn eller ej istedet for at lave en fejl.
Avatar billede fuldstop Nybegynder
28. februar 2002 - 11:08 #12
Altså indtastets Eskild' i formen skal dette sammenlignes med databasen, for at se om der er en Eskild' i databasen. Og er brugeren allerede oprettet og indsat i databasen (indsættes i databasen vha. replace-funktionen), skal man vel bare sammenligne det indtastede og databasen.

strSQL = "SELECT * FROM login Where username = '" & Request.form("username") & "'"
Avatar billede KongKurs Juniormester
28. februar 2002 - 11:11 #13
Min sql-streng ser sådan ud:

Dim strUserDB
strUSerDB = Trim(Request.Form("Brugernavn"))
objRs.Open "SELECT * FROM Admin WHERE Brugernavn = '"&strUserDB&"'", objConn

Og det producere altså nævnte fejl...
Avatar billede KongKurs Juniormester
28. februar 2002 - 12:49 #14
Fuldstop>> Okay det ser ud til at det er mig der har misforstået dig så... Prøv at se hvad jeg fandt her:

http://www.netcoders.dk/articles.asp?mode=show_article&article_id=51&tech_id=1

Det ligner jo meget det du startede med at skrive... Sorry ;-)

Hvordan kan  jeg give dig pointene?

Tak!

Mvh Frederik
Avatar billede fuldstop Nybegynder
28. februar 2002 - 12:51 #15
Jeg smider lige et svar ;o>
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