Avatar billede killa_freak Nybegynder
04. februar 2003 - 20:44 Der er 10 kommentarer og
2 løsninger

Disable HTML

Er ny indenfor ASP, men har præsteret, at lave en tagwall, men ønsker at slå HTML fra, så folk ikke kan lægge links eller billeder ind i tagwall'en.

Nogen der kan fortælle mig hvordan ?
Avatar billede Slettet bruger
04. februar 2003 - 20:50 #1
du skal bare anvende den indbyggede funktion Server.HTMLEncode
Avatar billede eagleeye Praktikant
04. februar 2003 - 20:50 #2
Du kan slå det fra så  HTML koden bliver til <b>

str = "en lang stregne"
str = Server.HTMLEncode(str)
Avatar billede Slettet bruger
04. februar 2003 - 20:51 #3
eksempel : strSource = Server.HTMLEncode(Request.Form("ditformfelt"))
Avatar billede eagleeye Praktikant
04. februar 2003 - 20:52 #4
Og skal du havde det helt fjernet så prøv at kigge på denne function jeg har vidre udviklet på:
http://www.eagleeye.dk/asp/removehtml/default.asp



Function RemoveHTML( strInputText )

  TAGLIST = ";!--;!DOCTYPE;A;ACRONYM;ADDRESS;APPLET;AREA;B;BASE;BASEFONT;" &_
    "BGSOUND;BIG;BLOCKQUOTE;BODY;BR;BUTTON;CAPTION;CENTER;CITE;CODE;" &_
    "COL;COLGROUP;COMMENT;DD;DEL;DFN;DIR;DIV;DL;DT;EM;EMBED;FIELDSET;" &_
    "FONT;FORM;FRAME;FRAMESET;HEAD;H1;H2;H3;H4;H5;H6;HR;HTML;I;IFRAME;IMG;" &_
    "INPUT;INS;ISINDEX;KBD;LABEL;LAYER;LAGEND;LI;LINK;LISTING;MAP;MARQUEE;" &_
    "MENU;META;NOBR;NOFRAMES;NOSCRIPT;OBJECT;OL;OPTION;P;PARAM;PLAINTEXT;" &_
    "PRE;Q;S;SAMP;SCRIPT;SELECT;SMALL;SPAN;STRIKE;STRONG;STYLE;SUB;SUP;" &_
    "TABLE;TBODY;TD;TEXTAREA;TFOOT;TH;THEAD;TITLE;TR;TT;U;UL;VAR;WBR;XMP;" 

  Const BLOCKTAGLIST = ";APPLET;EMBED;FRAMESET;HEAD;NOFRAMES;NOSCRIPT;OBJECT;SCRIPT;STYLE;"
   
  Dim nPos1, nPos2, nPos3
  Dim strResult, strTagName, bRemove, bSearchForBlock
 
  Dim runNo, AttackLimit, strRef
 
  runNo = 1
  AttackLimit = 5
 
  strResult = strInputText
  do
    runNo = runNo + 1
    strRef = strResult
    strText = strRef
    strResult = ""
   
    nPos1 = InStr(strText, "<")
    Do While nPos1 > 0
      nPos2 = InStr(nPos1 + 1, strText, ">")
      If nPos2 > 0 Then
        strTagName = Mid(strText, nPos1 + 1, nPos2 - nPos1 - 1)
        strTagName = Replace(Replace(strTagName, vbCr, " "), vbLf, " ")
        nPos3 = InStr(strTagName, " ")
        If nPos3 > 0 Then
          strTagName = Left(strTagName, nPos3 - 1)
        End If
        If Left(strTagName, 1) = "/" Then
          strTagName = Mid(strTagName, 2)
          bSearchForBlock = False
        Else
          bSearchForBlock = True
        End If   
        If InStr(1, TAGLIST, ";" & strTagName & ";", vbTextCompare) > 0 Then
          bRemove = True
          If bSearchForBlock Then
            If InStr(1, BLOCKTAGLIST, ";" & strTagName & ";", vbTextCompare) > 0 Then
              nPos2 = Len(strText)
              nPos3 = InStr(nPos1 + 1, strText, "</" & strTagName, vbTextCompare)
              If nPos3 > 0 Then
                nPos3 = InStr(nPos3 + 1, strText, ">")
              End If
              If nPos3 > 0 Then
                nPos2 = nPos3
              End If
            End If
          End If
        Else
          bRemove = False
        End If
        If bRemove Then
          strResult = strResult & Left(strText, nPos1 - 1)
          strText = Mid(strText, nPos2 + 1)
        Else
          strResult = strResult & Left(strText, nPos1)
          strText = Mid(strText, nPos1 + 1)
        End If
      Else
        strResult = strResult & strText
        strText = ""
      End If
      nPos1 = InStr(strText, "<")
    Loop
    strResult = strResult & strText
 
  loop until (strRef = strResult) OR (runNo = AttackLimit)
 
  if (runNo >= AttackLimit) then
    strResult = "...text removed..."
  end if
  RemoveHTML = strResult
End Function
Avatar billede killa_freak Nybegynder
04. februar 2003 - 21:04 #5
Metoden med Server.HTMLEncode, skal det sættes ind, i linien med textarea ?
Avatar billede Slettet bruger
04. februar 2003 - 21:20 #6
forstår ikke helt hvad du mener, men prøv at poste din kode.
Avatar billede killa_freak Nybegynder
04. februar 2003 - 21:40 #7
<%
    do while NOT rs.EOF
    Response.Write "<table border='0' width='50%'>"
    Response.Write "<td width='9%'><b>Fra :</b></td><td width='22%'>" & rs("messageAuthor") & "</td>"
    Response.Write "<td width='13%'><b>E-mail :</b></td><td width='35%'><a href='mailto:" & rs("messageAuthorEmail") & "'>" & rs("messageAuthorEmail") & "</a></td>"
    Response.Write "<td width='10%'><b>Dato :</b></td><td width='10%'>" & rs("messageDate") & "</td></tr>"
    Response.Write "<tr><td colspan='6'><hr align='center' size='1' width='100%'><a>" & rs("messageBody") & "</a><hr align='center' size='1' width='100%'></td></tr>"
    Response.Write "</table>"
    Response.Write "<br><br>"
    rs.MoveNext
    loop

    Conn.Close
    End Sub

  '----------------------------------------------------------------------------
  ' Formularen til at oprette indgange i gæstebogen med.
  '----------------------------------------------------------------------------

    Sub generateAuthorBox
%>

    <form method='post' action='tagw.asp?action=submit'>
   
    <table width='50%' border='0'>
    <tr><td width='15%'><b>Fra :</b></td><td><input name='messageAuthor'></td></tr>
    <tr><td width='15%'><b>E-mail :</b></td><td><input name='messageAuthorEmail'></td></tr>
    <tr><td width='15%' valign=top><b>Besked :</b></td><td><a><textarea name='messageBody' rows=10 cols=50></textarea></a></td></tr>
    <tr><td colspan='2'><center><input type=submit value='Send'></td></tr>
    </table>
   
    </form>

<%
    End Sub
 
  '----------------------------------------------------------------------------
  ' Gemmer kommentaren i gæstebogen-
  '----------------------------------------------------------------------------
    Sub generateSubmitBox
    Set Conn = Server.CreateObject("ADODB.Connection")
    guestbook = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("guestbook.mdb")
    Conn.Open guestbook
    strSQL = ("insert into Guestbook (messageDate, messageAuthor, messageAuthorEmail, messageBody) values ('" & Date & "', '" & Request.Form("messageAuthor") & "', '" & Request.Form("messageAuthorEmail") & "', '" & Request.Form("messageBody") & "')")
    Response.Write(strSQL)
    Conn.Execute(strSQL)
    Conn.Close
    'Call logTagEntry
    Response.Redirect("tagw.asp?action=show")
      End Sub
%>

Skal Server.HTMLEncode sættes ind, i linien med textboxen (textarea) ?
Avatar billede killa_freak Nybegynder
04. februar 2003 - 21:41 #8
Kun lidt af koden.
Avatar billede Slettet bruger
04. februar 2003 - 21:42 #9
strSQL = ("insert into Guestbook (messageDate, messageAuthor, messageAuthorEmail, messageBody) values ('" & Date & "', '" & Request.Form("messageAuthor") & "', '" & Request.Form("messageAuthorEmail") & "', '" & Server.HTMLEncode(Request.Form("messageBody")) & "')")
Avatar billede Slettet bruger
04. februar 2003 - 21:42 #10
hvis det er er messageBody det skal virke på, men ellers er metoden den samme for evt. andre felter
Avatar billede killa_freak Nybegynder
04. februar 2003 - 21:51 #11
Bliver nødt til, at give lidt, til eagleeye, da han egentlig skrev det rigtige også.

Men siger tusind tak for hjælpen "ezolu". Been a great help.
Avatar billede Slettet bruger
04. februar 2003 - 21:53 #12
så lidt :o)
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