|
![]() |
名片设计 CorelDRAW Illustrator AuotoCAD Painter 其他软件 Photoshop Fireworks Flash |
|
首先假如你是为利用ASP开发项目的,你肯定会做过一些治理新闻发布系统,或者BBS之类的东西,碰到一些发表源文件的地方,为了安全我们不得不做一些代码转变。 比如:tbStr = Replace(tbStr,"<","<")这就是将tbStr的那些输出后会影响页面的标签替换掉,当然实际的操作过程比我现在说的要复杂得多了! 下面就按照我自己的方式给大家介绍今天的内容,理解后就可以运用自如了! <% Function TOL8HTML(tbStr) Dim result, l, CODETXT if isNULL(tbStr) then TOL8HTML="" exit function end if l=len(tbStr) result="" CODETXT = "" Dim i For i = 1 to l if Right(result,6) = "[CODE]" then result = result CODETXT = CODETXT + Mid(tbStr,i,1) if Right(CODETXT,7) = "[/CODE]" then result = result + CODETXT end if else Select Case mid(tbstr,i,1) Case "<" result=result+"<" Case ">" result=result+">" Case chr(13) result = result + "<br>" Case chr(34) result=result+""" Case "&" result=result+"&" Case chr(32) if i+1<=l and i-1>0 then if mid(tbStr,i+1,1)=chr(32) or mid(tbStr,i+1,1)=chr(9) or mid(tbStr,i-1,1)=chr(32) or mid(tbStr,i-1,1)=chr(9) then result=result+" " else result=result+" " end if else result=result+" " end if case chr(9) result=result+" " case else result=result+mid(tbStr,i,1) End Select end if next TOL8HTML = result End Function %> 开发过论坛的朋友一眼就能看出上面这段代码是很典型的将HTML标记转变为安全字符的函数,调用的时候如果变量是strs, 方式就是 strs=TOL8HTML(strs) 只不过我加多了一段红色的代码部分这既是在论坛有调用源代码标签的提示后不执行下面的转变!假如你认为多余可以去掉试试,我也就不多说了, 随后我们还需要建立一个函数 <% Function TOL8UBB Dim CODE1, CODE2 CODE1 = "<table align=center width=""98%"""&_ " border=0 cellpadding=2 cellspacing=2><tr>"&_ "<td class=blank_2>表格内为可运行程序代码:"&_ "</td></tr><tr><td>"&_ " <TEXTAREA rows=12 cols=80 >" CODE2 = "</TEXTAREA><BR> "&_ "<INPUT onclick=runCode() type=button"&_ " value=运行代码>"&_ "</td></tr><tr><td></td></tr></table>" if Instr(tbStr,"[CODE]") > 0 and Instr(tbStr,"[/CODE]") > 0 then tbStr = Replace(tbStr,"[CODE]",CODE1) tbStr = Replace(tbStr,"[/CODE]",CODE2) end if end Function %> 这就是当前台页面数据输出预备调用[CODE] [/CODE]之间源代码的时候我们需要做的一些替换,以上两断代码建议存储在一个ASP页面内,我们这里把他们保存为TOL8UBB.asp! 以上两个都完成了,我们该看看访客们要浏览时的页面lookPage.asp如何设计了,细心的朋友会发现第二段代码中再作替换的时候有个按钮加了一个 JS函数的调用动作,而这个函数在哪里呢,当然就在这个lookPage.asp页面里了呀!我们先用include来将TOL8UBB.ASP包含进来然后加入下面这段JS <Script> function runCode() //本段JS来自经典论坛 { var code=event.srcElement.parentElement.children[0].value;//即要运行的代码。 var newwin=window.open(\\\'\\\',\\\'\\\',\\\'\\\'); //打开一个窗口并赋给变量newwin。 newwin.opener = null // 防止代码对论谈页面修改 newwin.document.write(code); //向这个打开的窗口中写入代码code,这样就实现了运行代码功能。 newwin.document.close(); } </Script> 最后在你把数据输出的时候先这里调用两个已经设计好了的函数如 strs = TOL8HTML(strs) strs = TOL8UBB(strs) Response.Write strs 就OK了……这东西是经过我反复实践才做出来的,其中还是有很不理想的地方,假如高手们你们能看出来或者直接就解决了,不要忘记和大家分享! 返回类别: 教程 上一教程: ASP OBJECT之:PICS 下一教程: 一段检查IP地址段是否合法的代码 您可以阅读与"让论坛可运行HTML或者SCRIPT源代码"相关的教程: · 巧用ASP技术保护DHTML源代码 · 将HTML源代码规范化,转变成XSL代码的ASP工具 · 用EASYMAILOBJECT组件处理EXCHANGE邮件源代码(3) · 使用ASP生成HTML文件的实例代码 · 创建具有 JSCRIPT 的 HTML 的 XMLHTTP |
![]() ![]() |
快精灵印艺坊 版权所有 |
首页![]() ![]() ![]() ![]() ![]() ![]() ![]() |