Avatar billede brevkasserne Nybegynder
26. januar 2002 - 16:16 Der er 13 kommentarer og
1 løsning

' tegnet...

Når jeg gemmer noget i en database lader jeg først teksten løbe igennem denne kode:

------------------------------------------

<script language="VBScript" runat="Server">
Function unQuote(strTekst)

strTekst = Trim(Replace(strTekst,"'","''"))
unQuote = Replace(Server.HTMLEncode(strTekst), vbCrLf, "<br>")

End Function
</script>

------------------------------------------

Dette skulle gerne erstatte '-tegnet med '' så der ikke ville blive problemer med at udskrive det fra en database og ind i en asp-side. Og jeg mente at en database læser to ' tegn som et ' tegn, men det gør den ikke. HJÆLP!
Avatar billede stigc Nybegynder
26. januar 2002 - 16:19 #1
Du skal kun omskrive til dobbelt ' når du indsætter i databasen, ikke når du hiver ud.
Avatar billede madrich Nybegynder
26. januar 2002 - 16:20 #2
Prøv med replace(streng,"'","''")
Avatar billede madrich Nybegynder
26. januar 2002 - 16:22 #3
Sorry!, det var min fejl, standard svar på standard spgm :)
, hvad er fejlen?
Avatar billede coltau Juniormester
26. januar 2002 - 16:41 #4
Du må normalt ikke formattére data når du gemmer dem. De skal gemmes rå. !Formattér dem når du viser dem.
Det gælder specielt med HTMLEncode for det ikke kan laves tilbage. ! Det betyder at dataene ikke kan trækkes ud til andre formål end at vise på en html-side. !
Avatar billede coltau Juniormester
26. januar 2002 - 16:45 #5
Hvis du skal gemme tekst der kan indeholde ' plinger så anvend nedenstående metode.

  Set objConn = Server.CreateObject("ADODB.Connection")
  objConn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.MapPath("base.mdb")
  Set objRS = Server.CreateObject("ADODB.RecordSet")
  objRS.CursorLocation = adUseServer
  objRS.CursorType = adOpenForwardOnly
  objRS.LockType = adLockOptimistic
  objRS.Open "select * from tabelnavn", objConn, , , adCmdText
  objRS.AddNew
  objRS("TekstFelt") = strTekst ' Her gemmes alle tegn.
  objRS.Update
  objRS.Close
  objConn.Close
Avatar billede brevkasserne Nybegynder
26. januar 2002 - 16:46 #6
Vil der ikke i nogle tilfælde komme fejl hvis man prøver at gemme dataerne rå?
Avatar billede madrich Nybegynder
26. januar 2002 - 16:57 #7
coltau --> server.HtmlEncode kan sagtens omformateres til det eksisterende  igen, hvis man tænker performance, er det ofte en fordel at Html.encode strenge oftest skal bruges i forbindelse med webapplikationen, før de kommer i basen,  istedet for at skulle HTMLencode dem når de skal vises, hellere lave arbejdet en gang istedet for at skulle lave arbejdet hver gang en streng fra basen skal vises, det man alternativt kan gøre er at HTMLstrippe strengene istedet og smide dem i et felt ved siden af, som man så kan bruge til at søge eller what ever i!
Avatar billede brevkasserne Nybegynder
26. januar 2002 - 16:57 #8
hmm, er det sådan så når jeg bruger Server.HTMLEncode behøver jeg ikke at erstatte ' tegnet med to ' tegn...?
Jeg har prøvet og det ser ud til at virke...
Avatar billede madrich Nybegynder
26. januar 2002 - 16:58 #9
så holder man data og "skabelon" hver for sig!
Avatar billede brevkasserne Nybegynder
26. januar 2002 - 17:00 #10
ok, jeg tror det virker nu. tak for svarene...
Avatar billede madrich Nybegynder
26. januar 2002 - 17:02 #11
det man typisk bruger HTMLencode til er at sikre sig at en bruger af et givent system ikke skriver HTML tags feks </tr></table> i input felter og på den måde kan ødelægge den eksisterende HTMLskabelon i applikationen.

eller som et værktøj til at fremvise HTML til eksempler_

eller for at sikre sig at specialtegn (ex ÆØÅ) er websikre
Avatar billede netsrac Praktikant
26. januar 2002 - 17:17 #12
madrich >> coltau siger nogen meget kloge ord, som du burde lytte til, man smider altid data rå i databasen, ligegyldigt om det primært skal bruges til web fremvisning eller ej. Det nedsætter din databases performance væsentligt når der pludselig skal gemmes &gt; istedet for < osv.

Desuden kan man ikke sige at indhold primært skal bruges til web fremvisning, man ved aldrig hvad man en dag kunne bruge sin data i forbindelse med.
Avatar billede stigc Nybegynder
26. januar 2002 - 19:30 #13
netsrac >> Ligefrem at sige det nedsætter perfomance væsentlig er vel lidt kraftigt! Dog er der et andet problem, i og med du kan ikke regne med at teksten kan passe ned i et felt, der er afgrænset på størrelsen. (f.eks varchar(255), og så har man lavet et textfelt med en maxlength på 255)
Avatar billede madrich Nybegynder
27. januar 2002 - 06:06 #14
>> Netsrac.
du har ret i at det altid er "bedst" at beholde data rå, men min kommentar gik på performance, (óg for den sags skyld på brugbare data), jeg kender ikke til ret mange steder hvor man lader en bruger indtaste HTML koder i et inputfelt eller et text area, der så på et senere tidspunkt kan interfere med de HTML skabeloner i appliationen, og det vil derfor vil det være lettest at HTML encode strengen 1 gang nemlig ved submit, istedet for hver gang data skal vises at HTMLencode strengen.

For lige at komme med en anden kommentar angående HTML, så er det en måde at fremstille data på, sjældent del af data'en It self.

Hvis man vil have "rå" data i sin database, bør man i princippet strippe alle strenge for HTML, da det jo bare er en måde at fremstille data på.
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