快精灵印艺坊 您身边的文印专家
广州名片 深圳名片 会员卡 贵宾卡 印刷 设计教程
产品展示 在线订购 会员中心 产品模板 设计指南 在线编辑
 首页 名片设计   CorelDRAW   Illustrator   AuotoCAD   Painter   其他软件   Photoshop   Fireworks   Flash  

 » 彩色名片
 » PVC卡
 » 彩色磁性卡
 » 彩页/画册
 » 个性印务
 » 彩色不干胶
 » 明信片
   » 明信片
   » 彩色书签
   » 门挂
 » 其他产品与服务
   » 创业锦囊
   » 办公用品
     » 信封、信纸
     » 便签纸、斜面纸砖
     » 无碳复印纸
   » 海报
   » 大篇幅印刷
     » KT板
     » 海报
     » 横幅

让论坛可运行HTML或者SCRIPT源代码

 首先假如你是为利用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
    微笑服务 优质保证 索取样品