|
| 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")), "'", "'")
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 ' 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")), "'", "'") & "','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")), "'", "'")
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 ø for ø og å 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 ø for ø og å 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
| |
|
|