|
![](/App_Themes/Normal/images/Window/Backgrounds/news.gif) | 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)
![](/App_Themes/Normal/images/Window/Backgrounds/news.gif) | 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 ![Glad](images/smileys/glad.gif) "
| |
Jakob Andersen (22-12-2001)
![](/App_Themes/Normal/images/Window/Backgrounds/news.gif) | 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 ![Glad](images/smileys/glad.gif) "
| |
Henrik Hejbøl Jensen (22-12-2001)
![](/App_Themes/Normal/images/Window/Backgrounds/news.gif) | 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)
![](/App_Themes/Normal/images/Window/Backgrounds/news.gif) | 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 ![Glad](images/smileys/glad.gif) "
| |
Svein Høvik (23-12-2001)
![](/App_Themes/Normal/images/Window/Backgrounds/news.gif) | 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
| |
![](/images/tree/0.gif) Henrik Hejbøl Jensen (23-12-2001)
![](/App_Themes/Normal/images/Window/Backgrounds/news.gif) | 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 ![Blink](images/smileys/nwink.gif) 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
| |
|
|