08. februar 2006 - 13:13
Der er
25 kommentarer og 1 løsning
HTMLEncode fungerer ikke
Jeg har et problem med specialtegn, som jeg har læst kan løses med HTMLEncode, men den virker ikke i følgende kode, som ellers fungerer fint? Dim varFornavn, varEfternavn, varTelefon, varFoedselsdato varFornavn = Request.Form ("fornavn" ) varEfternavn = Request.Form ("efternavn" ) varTelefon = Request.Form ("telefon" ) varFoedselsdato = Request.Form ("foedselsdato" ) varFornavn = Server.HTMLEncode("varFornavn"); SQL = "Insert into personer (" SQL = SQL & "Fornavn," SQL = SQL & "Efternavn," SQL = SQL & "Telefon," SQL = SQL & "Foedselsdato)" SQL = SQL & "values(" SQL = SQL & "'" & varFornavn & "'," SQL = SQL & "'" & varEfternavn & "'," SQL = SQL & "'" & varTelefon & "'," SQL = SQL & "'" & varFoedselsdato & "')" CONN.Execute(SQL)
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
08. februar 2006 - 13:18
#1
Det burde kun være nødvendigt at sikre ' tegnet: varFornavn = replace(Request.Form("varFornavn"),"'","''") men ellers mangler du Request.Form: varFornavn = Server.HTMLEncode(Request.Form("varFornavn"))
08. februar 2006 - 13:39
#2
Du siger "Det burde kun være nødvendigt at sikre ' tegnet:" - hvad mener du? Du mener vel "Request.Form("fornavn"))" i stedet for "Request.Form("varFornavn"))" ? Kan det passe, at der kommer til at stå "Ælling" i databasen, når fornavnet er "Ælling" ? Hvorfor skal Request.Form med - burde mit forslag ikke virke?
08. februar 2006 - 13:41
#3
fennec > du roder vist lidt i det ... nanna31, du skal ikke have "" omkring varFornavn i denne linie: varFornavn = Server.HTMLEncode("varFornavn"); Request.Form ("fornavn") hældes jo over i en lokal variabel der hedder varFornavn. Men den kode du har nu komme alle personer til at hedde "varFornavn" til fornavn :o) Men fennec har ret, du burde kun skulle bekymre dig om ' tegnet. Hvad er der for problemer du skal have løst med HTMLEncode?
08. februar 2006 - 13:45
#4
Der burde stå Ælling ...
08. februar 2006 - 13:50
#5
Hvis du har en person der hedder O'Leary, så vil du ende med at din SQL siger noget med "INSERT INTO personer (fornavn) VALUES ('O'Leary')" ... hvilket giver en fejl, for nu er der jo 3 stk ' i sætningen. Hvis du derfor erstatter en ' med to ' inden, vil det give: "INSERT INTO personer (fornavn) VALUES ('O''Leary')" ... hvilket er korrekt, for databasen opfatter dobbelt anførselstegn som et enkelt. Fikst, ikke? Men tilbage til mit spørgsmål: Hvorfor kan du ikke putte danske bogstaver m.m. i databasen? Det gør alle vi andre altså!!
08. februar 2006 - 13:51
#6
Det med "" kan jeg godt forstå, jeg prøvede også først mit ovenstående eksempel uden "", men det virkede heller ikke. Mine problemer opstår i forbindelse med adresser, hvor flg. tegn kan være en del af inputtet: "./,/æ/ø/å/Æ/Ø/Å/ /-/"
08. februar 2006 - 13:56
#7
nanna31 >> Får du en fejl når du bruger en af de tegn, for jeg kan sagtens bruge de tegn i alle de databaser jeg har brugt (access, ms-sql og mysql)
08. februar 2006 - 13:56
#8
Når jeg opretter en person med fornavnet Ælling, kommer fornavnet til at stå som Ælling i databasen?
08. februar 2006 - 13:57
#9
Og efterfølgende gives intet resultat, når jeg søger på fornavnet Ælling
08. februar 2006 - 14:03
#10
Kunne lyde som om den kører på en forkert collate. Hvilken database er det??
08. februar 2006 - 14:11
#11
access 2002
08. februar 2006 - 14:12
#12
Det har vel ikke noget at gøre med, at mit input til Request.Form kommer fra et Flash-inputfelt?
08. februar 2006 - 14:13
#13
Jeg kan sagtens skrive æøå manuelt ind i databasen.
08. februar 2006 - 14:14
#14
Men det giver nu heller intet resultat, når jeg søger på det
08. februar 2006 - 14:19
#15
Jeg havde et lignede problem engang med ÆØÅ i access databasen, og det kunne jeg løse ved at tilføje: <%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%> i toppen af mine ASP dokumenter
08. februar 2006 - 14:23
#16
larsbach - det gør desværre ingen forskel her hos mig.
08. februar 2006 - 14:31
#18
Ok, nu forsåtr jeg konceptet codepage, men jeg ved ikke, hvilken codepage, jeg så skal vælge, samt hvordan jeg vælger den samme i mit Flashdokument, hvilket jo nok er nødvendigt så?
08. februar 2006 - 14:35
#19
Det kunne meget vel have noget med dit Flash at gøre. Jeg vil anbefale at lave en lille test (glem alt om CODEPAGE og lign i testen) Lav en almindelig HTML form. Få den til at gemme i databasen. Hvis den gemme rigtigt, er det MEGET sansynlig at det er Flash der er problemet.
08. februar 2006 - 14:36
#20
Du kan også vælge at bruge ADO på en anden måde: 'Opret Connection Command (Com) og Recordset (Rec) Com.CommandText = "SELECT top 1 Fornavn, Efternavn, Telefon, Foedselsdato FROM personer" Rec.Open Com, , 3, 3 Rec.AddNew Rec("Fornavn") = Request.Form("fornavn") Rec("Efternavn") = Request.Form("Efternavn") Rec("Telefon") = Request.Form("Telefon") Rec("Foedselsdato") = CDate(Request.Form("Foedselsdato")) Rec.Update Rec.Close 'og luk og set objekterne til Nothing Det løser også en del problemer omkring datoer ...
08. februar 2006 - 14:46
#21
Har fundet løsningen - jeg skulle simpelthen bare skrive "System.useCodepage = true;" i rooten i mit Flashdokument :-) Mange tak for hjælpen, det havde jeg aldrig fundet ud af, hvis ikke nogen havde tænkt på "codePage" Husk at lægge svar!
19. februar 2006 - 15:43
#22
Tak for hjælpen, vil en lige lægge et svar, så jeg kan lukket spørgsmålet?
19. februar 2006 - 19:58
#23
Hvem syntes du skal ligge et svar?
19. februar 2006 - 22:01
#24
Det synes jeg, at du skal Lars - du ledte mig på Codepage.
20. februar 2006 - 08:08
#25
Så siger jeg mange tak :)
20. februar 2006 - 20:11
#26
lige over :)
Kurser inden for grundlæggende programmering