Avatar billede vester Novice
12. juni 2002 - 00:20 Der er 15 kommentarer og
2 løsninger

Strip HTML fra felter

Jeg kan ikke få det her til at virke

Function RemHTML (felt)
RemHTML = Server.HTMLEncode(Request.Form(felt))
end Function


PreTekst=RemHTML("Tekst")
Tekst=replace(PreTekst),vbCrLf,"<br>")


Dim ID
ID=Session("ID")

strSQL = "SELECT * FROM Kommentarer"
RS.Open strSQL, objConn, 2, 2
RS.AddNew

RS("Overskrift")=RemHTML("Overskrift")
RS("Tekst")=Tekst
RS("Navn")=RemHTML("Navn")

'RS("Overskrift")=Request.Form("Overskrift")
'RS("Tekst")=Request.Form("Tekst")
'RS("Navn")=Request.Form("Navn")
Avatar billede lp Nybegynder
12. juni 2002 - 00:22 #1
prøv lige med:

Function RemHTML (felt)
RemHTML = Server.HTMLEncode(felt)
end Function


PreTekst=RemHTML("Tekst")
Tekst=replace(PreTekst),vbCrLf,"<br>")


Dim ID
ID=Session("ID")

strSQL = "SELECT * FROM Kommentarer"
RS.Open strSQL, objConn, 2, 2
RS.AddNew

RS("Overskrift")=RemHTML("Overskrift")
RS("Tekst")=Tekst
RS("Navn")=RemHTML("Navn")

'RS("Overskrift")=Request.Form("Overskrift")
'RS("Tekst")=Request.Form("Tekst")
'RS("Navn")=Request.Form("Navn")
Avatar billede vester Novice
12. juni 2002 - 00:28 #2
NOPE
Avatar billede lp Nybegynder
12. juni 2002 - 00:30 #3
altså hvad skal RemHTML funktionen gøre ?

fjerne alle HTML tags eller blot tilrette dem ?
Avatar billede medions Nybegynder
12. juni 2002 - 00:30 #4
Får du en fejl eller? Hvis ja, hvilken?

//>Rune
Avatar billede lp Nybegynder
12. juni 2002 - 00:36 #5
du laver desuden en masse overkill, jeg koger det lige lidt ned for dig:

' ud med RemHTML funktionen, Server.HTMLEncode er jo en funktion i sig selv :)

Dim ID
ID=Session("ID")

strSQL = "SELECT * FROM Kommentarer"
RS.Open strSQL, objConn, 2, 2
RS.AddNew

RS("Overskrift")=Server.HTMLEncode(Overskrift"))
RS("Tekst")=Server.HTMLEncode(Replace(Request.Form("Tekst"),vbCrLf,"<br>"))
RS("Navn")=Server.HTMLEncode("Navn")

'RS("Overskrift")=Request.Form("Overskrift")
'RS("Tekst")=Request.Form("Tekst")
'RS("Navn")=Request.Form("Navn")
Avatar billede vester Novice
12. juni 2002 - 00:36 #6
RemHTML, skal fjerne alt html fra de indtastede data.

Jeg får en Internal Server Error. Problemet er, at jeg er nødt til at teste online, og den server, jeg bruger, fortæller ikke, hvilken fejl det er.
Avatar billede lp Nybegynder
12. juni 2002 - 00:37 #7
i linjen:

RS("Tekst")=Server.HTMLEncode(Replace(Request.Form("Tekst"),vbCrLf,"<br>"))

skal du udskifte "Tekst" med det du får postet fra din form, for det er vel det du gør ?
Avatar billede lp Nybegynder
12. juni 2002 - 00:38 #8
altså server.htmlencode fjerner ikke html tags, den encoder dem, således at de fx. kan udskrives uden at de bliver opfattet af browseren... skal du fjerne alle html tags er processen noget større...
Avatar billede vester Novice
12. juni 2002 - 00:41 #9
Det er fint med at encode dem.
Jeg får stadig en fejl
Avatar billede vester Novice
12. juni 2002 - 00:42 #10
Skal den ikke have at vide, at den skal hente data fra en form (request.Form).

Hvor skal det i så fald stå?
Avatar billede lp Nybegynder
12. juni 2002 - 00:43 #11
well, linje ?

jeg kan ikke hjælpe mere, medmindre jeg får noget freakin' debuggin info.... :)
Avatar billede fet321 Nybegynder
12. juni 2002 - 00:43 #12
Denne her er fundet på activeserverpages.dk. Kan ikke lige huske linket.

<html><head>
<title>Fjern HTML tags</title>
</head><body>
<%
Function RemoveHTML(strContent)
  Do
    pos = 1
    tmpBegin = InStr(pos,strContent,"<")
    If tmpBegin > 0 Then
      pos = tmpBegin
      If LCase(mid(strContent,tmpBegin,7)) = "<script" Then
        ' Her fjernes script kode
        tmpEnd = Instr(tmpBegin,LCase(strContent),"</script>")
        strContent = Left(strContent,tmpBegin-1) & Right(strContent,Len(strContent)-tmpEnd-8)
      ElseIf LCase(mid(strContent,tmpBegin,2)) = Chr(60) & "%" Then
        ' Her fjernes ASP kode
        tmpEnd = Instr(tmpBegin,LCase(strContent),"%" & Chr(62))
        strContent = Left(strContent,tmpBegin-1) & Right(strContent,Len(strContent)-tmpEnd-3)
      Else
        ' Her fjernes HTML kode
        tmpEnd = InStr(pos,strContent,">")
        If tmpEnd > 0 Then
          strContent = Left(strContent,tmpBegin-1) & Right(strContent,Len(strContent)-tmpEnd)
        Else
          strContent = Left(strContent,tmpBegin-1)
          Exit Do
        End If
      End If
    Else
      Exit Do
    End If
  Loop
  RemoveHTML = strContent
End Function

tmpContent = Trim(Request.Form("HTML"))
If Len(tmpContent) > 0 Then
  Response.Write Replace(RemoveHTML(tmpContent), vbCrLf, "<br>")
  Response.End
End If
%>

<form method="POST">
<textarea name="HTML" cols="70" rows="15"></textarea>
<br><input type="submit" name="Action" value="Fjern HTML">
</form>

</body></html>

Den virker.
Avatar billede lp Nybegynder
12. juni 2002 - 00:45 #13
altså... lav lige et scenario her...

som jeg kan tyde af din kode:

1. brugeren indtaster noget i en form på en side, som benytter post til at sende det til den side du har pasted kode fra. feltet brugeren indtaster i hedder: "Tekst".
2. siden du har vist kode fra gemmer...

er det anderledes er der enten noget du ikke har fortalt eller også er der noget der er anderledes på den anden side
Avatar billede vester Novice
12. juni 2002 - 00:45 #14
Jeg stopper for i aften, men kigger ind i morgen.
VesTer
Avatar billede vester Novice
12. juni 2002 - 00:47 #15
lp
Det er 1, der er den rigtige
Avatar billede eagleeye Praktikant
12. juni 2002 - 08:45 #16
det er fejl i den linie som replacer vCRLF med <br> i Tekst:
Tekst=replace(PreTekst),vbCrLf,"<br>")
Skal være:
Tekst=replace(PreTekst,vbCrLf,"<br>")
Avatar billede vester Novice
29. juli 2002 - 00:29 #17
Beklager den lange ventetid
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