21. oktober 2002 - 19:25
Der er
9 kommentarer
Tagwall (asp) u. (html)
Jeg ahr lavet en tagwall, hvor fejlen er at man kan skrive html i den. hvordan for jeg det væk ?
Annonceindlæg fra Cognizant
AI er ikke problemet. Eksekvering er.
Der bliver investeret massivt i AI. Teknologien er mere tilgængelig end nogensinde, og ambitionerne er høje. Alligevel oplever mange virksomheder, at resultaterne udebliver.
21. oktober 2002 - 19:29
#1
hvis du vil disable html tags så kan du skrive server.HTMLencode: text = Server.HTMLEncode(str) HTML koden forsvinder ikke men den virker heller ikke den vil fremstræde som tekst eks <b>
21. oktober 2002 - 19:29
#2
Når du indsætter tekst i databasen udskifter du større-end og mindre-end tegn: tekst = Replace(Request.Form("tekst"), "<", "<") tekst = Replace(Request.Form("tekst"), ">", ">") så indsætter du tekst i databasen, og så bliver tegnene vist på skærmen i stedet.
21. oktober 2002 - 19:30
#3
Alternativt kan man skrive en function som kan fjerne HTML tekst... En som denne hvor man med TAGLIST kan angive hvilke tags der skal fjernes. 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, " 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
21. oktober 2002 - 19:31
#4
Prøver lige !
21. oktober 2002 - 19:31
#5
hov anden linie af min kode skal i stedet være: tekst = Replace(tekst, ">", ">")
21. oktober 2002 - 19:35
#6
hvor skal selve denne kode ^den som hells skriver^puttes ind ?
21. oktober 2002 - 19:37
#7
text = Server.HTMLEncode(str) ?? hvor sættes den ind ? Her # <% 'Fixar datumet Session.LCID=2055 ' Databas koppling Set Connect = Server.CreateObject("ADODB.Connection") Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("text.mdb")&";" Set RecSet = Server.CreateObject("ADODB.Recordset") Addera = "SELECT * FROM skriv ORDER BY id DESC" RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic %>
21. oktober 2002 - 19:38
#8
Der hvor du normalt vil udskrive Response.write recset("kolonnenavn") skriver du: Response.write Server.HTMLEncode(recset("kolonnenavn"))
21. oktober 2002 - 19:38
#9
på den side, hvor du sætter indlæg ind i databasen f. eks.: tekst = Request.Form("tekst") tekst = Replace(tekst, "<", ">") tekst = Replace(tekst, "<", ">") strSQL = "Insert into tabelnavn (tekst) values ('" & tekst & "')" Conn.Execute(strSQL)
Kurser inden for grundlæggende programmering