Avatar billede madrich Nybegynder
29. marts 2001 - 00:46 Der er 10 kommentarer og
1 løsning

Replace mere end en ting af gangen

kan det lade sig gøre at replace mere end en ting af gangen

ex. \" med &quot samtidig med at man replacer < med &lt; og > med &gt;
altså i en linje istedet for at lave den samme procedure 3 gange

strtest = replace(request.form(\"test\"),\"\"\"\",\";&quot\")

strtest1 =replace(strtest,\"<\",\"&lt;\") etc...
Avatar billede tdaugaard Nybegynder
29. marts 2001 - 00:48 #1
Det kan du ikke nej .. du skal bruge f.eks. 3 Replace() linier til at replave tre ting med tre andre.
Avatar billede tdaugaard Nybegynder
29. marts 2001 - 00:51 #2
Hvis det er <, >, \" osv. kan du jo bruge Server.HTMLEncode(streng) Men hvis det er mere og du skal bruge det mange steder kan du jo lave en funktion til det. F.eks.

Function ToHTML(strContent)
  strContent = Replace(strContent, \"<\", \"&lt;\")
  strContent = Replace(strContent, \">\", \"&gt;\")
  strContent = Replace(strContent, Chr(34), \"&quot;\")

  ToHTML = strContent
End Function
Avatar billede madrich Nybegynder
29. marts 2001 - 00:57 #3
Lige præcis hvordan fungerer server.HTMLEncode , det jeg skal med scriptet er at sikre mig at der ikke kommer forkerte tegn ind i basen, samt sikre mig at det ikke kommer \"rigtig\" html ud, da dette kan fucke det text-area op jeg viser koden i!
Avatar billede tdaugaard Nybegynder
29. marts 2001 - 01:05 #4
Nåå .. det er nemt nok.

Den side hvor du smider ind i databasen:

strTest = Server.HTMLEncode(Request(\"test\"))
strTest = Replace(strTest, \"\'\", \"\'\'\") \' hvis ikke vi gør det her kan en bruger fucke SQL\'et up ved
\'at skrive en \' i strengen.


når du så trækker det ud igen skal du ikke bekymre dig om, om et <textarea> viser det korrekt, for det gør det.

&lt;html&gt; vil f.eks. blive vist som <html>
Avatar billede madrich Nybegynder
29. marts 2001 - 01:11 #5
Det er det der er meningen!!
det var jo ikke så svært, hvad så hvis man vil have have alle tegnene vist som \"rigtig\" html igen senere, er der så en server.htmlUnencode funktion?
Avatar billede tdaugaard Nybegynder
29. marts 2001 - 01:15 #6
Der er desværre ikke nogen HTMLUnencode funktion .. men jeg har en jeg selv har lavet som også \"omvender\" evt. &#xxx; koder til det tegn de står for, hvis du vil have den ..
Avatar billede madrich Nybegynder
29. marts 2001 - 01:17 #7
det ville da være lækkert, men er det ikke bare at sige replace(strtest,\"&quot\",\"\"\"\") etc. etc.
Avatar billede tdaugaard Nybegynder
29. marts 2001 - 01:22 #8
madrich:> jo, det er faktisk bare det modsatte. Men her er det sådan at Server.HTMLEncode() laver f.eks. tegn som Æ, Ø og Å om til deres ASCII værdi.
Avatar billede madrich Nybegynder
29. marts 2001 - 01:24 #9
Det ville være lækkert at se din funktion!

men her er point\'sne de er fortjent!
Avatar billede tdaugaard Nybegynder
29. marts 2001 - 01:25 #10
Her er den funktion jeg bruger som en slags Server.HTMLDecode ..

Function HTMLDecode(strInput)
    strInput = Replace(strInput, \"&quot;\", Chr(34))
    strInput = Replace(strInput, \"&lt;\", \"<\")
    strInput = Replace(strInput, \"&gt;\", \">\")
    strInput = Replace(strInput, \"&amp;\", \"&\")

    If InStr(strInput, \"&#\") Then
        Do
            Index = InStr(strInput, \"&#\")
            If Index = 0 Then Exit Do
            EndIndex = InStr(Index, strInput, \";\")
            If EndIndex = 0 Then Exit Do

            strChar = Mid(strInput, Index, (EndIndex - Index) + 1)
            strCChar = Mid(strChar, 3, Len(strChar) - 3)
            If Not Len(strCChar) > 3 And IsNumeric(strCChar) Then
                If Asc(strCChar) > -1 And Asc(strCChar) < 256 Then strCChar = Chr(CInt(strCChar)) Else strCChar = \"\"
            End If

            strInput = Replace(strInput, strChar, strCChar)
        Loop
    End If

    HTMLDecode = strInput
End Function

du bruger den ligesom Server.HTMLEncode():

strStreng = HTMLDecode(strStreng)
Avatar billede tdaugaard Nybegynder
29. marts 2001 - 01:25 #11
There ya go :-)
Og tak for pointene :-)
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