/ 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
Brug af ulovlige tegn?
Fra : Magnus


Dato : 22-12-01 12:24

Når jeg skriver et indlæg i word til min hjemmeside og sakser det over på
min nyhed adminstrationsside og indsætter det i min formular for derefter at
indskrive den i min MySQL database for siden så får jeg mange gange fejl.
Dette skyldes brugen af tegnet ' f.eks. når der skives Brian's med denne
abrostrof som systemmet åbenbart ikke kan forstå og der er vist også et par
andre tegn.

Hvorfor kan jeg ikke indskrive tegnet i databasen og er der en løsning på
dette problem ?


/Magnus



 
 
Jakob Andersen (22-12-2001)
Kommentar
Fra : Jakob Andersen


Dato : 22-12-01 12:33

"Magnus" <arnason@email.dk> skrev i en meddelelse
news:3c246de0$0$46363$edfadb0f@dspool01.news.tele.dk...
> Hvorfor kan jeg ikke indskrive tegnet i databasen og er der en løsning på
> dette problem ?

Udskift tegnet ' med ''(2 x ') dermed er det escapet i SQL strengen.

--
Jakob Andersen
FAQ for webdesign gruppen på
<http://www.usenet.dk/oss/dk.edb.internet.webdesign>
"Det er rart at være vigtig, men det er vigtigere at være rar "



Jakob Andersen (22-12-2001)
Kommentar
Fra : Jakob Andersen


Dato : 22-12-01 12:37

"Jakob Andersen" <jakob@andersen.as> skrev i en meddelelse
news:a01r7g$141f$1@news.cybercity.dk...
> Udskift tegnet ' med ''(2 x ') dermed er det escapet i SQL strengen.

Dette gælder også loginsiden til din administration!!!

Man kan blot skrive:

' or '1' = '1

i både brugernavn og adgangskode så er man inde..

--
Jakob Andersen
FAQ for webdesign gruppen på
<http://www.usenet.dk/oss/dk.edb.internet.webdesign>
"Det er rart at være vigtig, men det er vigtigere at være rar "



Henrik Hejbøl Jensen (22-12-2001)
Kommentar
Fra : Henrik Hejbøl Jensen


Dato : 22-12-01 12:47

> Hvorfor kan jeg ikke indskrive tegnet i databasen og er der en løsning på
> dette problem ?
Du kan ikke sætte det ind i databasen fordi når du skriver til denne buger
du en kode der formegentlig ligner noget ala denne:



Forklaring:

Insert into tabel ( navn, artikel) values('henrik','dette er en fed
artikel')

men du bruger nok noget Request.Form("navn") i stedet for henrik og "dette
er en fed artikel". However, bruger du eg. en ' i midten af en sætning, vil
det komme til at se sådan ud når du indsætter det:

Insert into tabel ( navn, artikel) values('henrik','dette er en fed artikel
hvor brian's hest løber hurtigt')

Den tror så at den skal stoppe med at skrive til tabellen hvor ' kommer. Og
når du så skriver noget efter det bliver den forvirret...

og nu til løsningen:

Hvis du bruger Request.Form kan du lægge tingene over i variabler først for
at lette overblikket og der kan du replace:

navn = Replace(Server.HTMLEncode(Request.Form("navn")), "'", "&#039;")

Det der sker er at Server.HTMLEncode laver alle tegn om til html. eg. bliver
ø til &oring; osv. men ' koder den ikke om, så derfor smider vi en replace
foan det hele der "bytter" abostrof ud med htmlkoden &#039; der oxo er en
abostrof...

dette kan så sættes ind i din insert sætning således:

Insert into tabel ( navn, artikel) values('" & navn & "','dette er en fed
artikel')
Du kan oxo gøre det på den her måde (uden brug af variabler)

Insert into tabel ( navn, artikel) values('" &
Replace(Server.HTMLEncode(Request.Form("navn")), "'", "&#039;") & "','dette
er en fed artikel')

den første metode er noget mere overskuelig end den første..

Skriv endelig hvis du er i tvivl om noget..

mvh. Henrik





Jakob Andersen (22-12-2001)
Kommentar
Fra : Jakob Andersen


Dato : 22-12-01 12:50

"Henrik Hejbøl Jensen" <henrik@hejboel.dk> skrev i en meddelelse
news:Ko_U7.3451$Zm5.244566@news000.worldonline.dk...
> navn = Replace(Server.HTMLEncode(Request.Form("navn")), "'", "&#039;")

Det skal lige bemærkes at HTMLEncode metoden ikke altid er så smart, hvis
man f.eks. sendet nyhederne ud i et nyhedsbrev i ren tekst, eller hvis man
laver nogle udtræk hvori man benytter XML så kan det godt blive lidt
underligt. Jeg foreslår istedet man laver HTMLEncodingen i udtrækket. Så er
ens data bedre bevaret for andet end Webmediet.

Altså man kan nøjes med:

navn = Replace( Request.Form("navn"), "'". "''")

--
Jakob Andersen
FAQ for webdesign gruppen på
<http://www.usenet.dk/oss/dk.edb.internet.webdesign>
"Det er rart at være vigtig, men det er vigtigere at være rar "



Svein Høvik (23-12-2001)
Kommentar
Fra : Svein Høvik


Dato : 23-12-01 01:01

> Det der sker er at Server.HTMLEncode laver alle tegn om til html. eg.
bliver
> ø til &oring; osv. <snip>


&oring: - det var en helt ny html entity

I Norge bruker vi heller &oslash; for ø og &aring; for å......

Svein








Henrik Hejbøl Jensen (23-12-2001)
Kommentar
Fra : Henrik Hejbøl Jensen


Dato : 23-12-01 08:47

> &oring: - det var en helt ny html entity
>
> I Norge bruker vi heller &oslash; for ø og &aring; for å......

hmmm... kunne godt være jeg skulle til at gennemgå mine HTML
kvallifikationer igen håber ikke at det har voldt større skade, men tak
fordi du gør mig opmærksom på det... se, sådan går det når man bruger
HTMLEncode, man glemmer sq

men, I må alle have en rigtig fed jul, selv skal jeg forsøge at slippe
computeren i mere en de 10 minutter der går med ris á la mande...

Glædelige julehilsner fra
Henrik - der i bund og grund syntes at Harry Potter og LOTR er fede film



Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408844
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste