XhTML+asp+access完整实例 全程教程

| |
2009/04/23 by bgaidu | Popularity:611
Category : asp学习 | 22 Comments
本教程仅供菜鸟学习,因为作者写这个教程的时候还很菜。(哇哈哈哈........)他现在,自从和我切磋了几次之后.嗯,废话少说。首先是分割线




--------------------------------------------------------------------------------



1.第一是建立一个data.mdb了,我做了4张表【每张表里面有id为主建,我在下面省掉不写】多谢狼哥提示,表名要加前缀*_,防止和关键字重复出现问题!由于我的已经做到一般狼哥才提示,就还是老样子,以后菜鸟应该用()里面的命名,这次例外。
表1:admin(szd_admin): szd_name szd_password szd_jibie[0表示一般用户,1表示管理员]


表2:lanmu( szd_lanmu): szd_lanmu[这是栏目分类,以后要写在那个栏目下,就用到了]

表3:news(szd_news): szd_title[标题] szd_lanmu[在那个栏目下,存栏目的id号,方便以后修改] szd_content【内容】 szd_hits【点击】 szd_jibie[0表示不置顶,1表示置顶,2表示推荐,3表示归档]
表4:nodown 防下载的表【呵呵,有点安全的观念】数据类型是 OLE 对象 ,然后添加一条记录:<%'p'-9%>自己想办法添加,可以copy的,^_^

现在就是链接数据库了,还是老办法

<%
option explicit
dim rootdir,myLocation,dbPath,conn,connStr

On Error Resume Next
Dim db
'更改数据库名字
db="data.mdb"
set conn = Server.CreateObject("ADODB.Connection")
connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" &amp; Server.MapPath(""&amp;db&amp;"")
conn.Open connstr



if Err.Number <> 0 then '如果有错误发生
response.write "<b>提示:</b>建立数据库连接错误,请联系管理员。"
conn.close
set conn=nothing
response.end
end if
%>

<%

'SQL注入式攻击防范
dim squery,sURL,allquery
squery=lcase(Request.ServerVariables("QUERY_STRING"))
sURL=lcase(Request.ServerVariables("HTTP_HOST"))
allquery=squery+sURL
if InStr(allquery,"%20")<>0 or InStr(allquery,"%27")<>0 or InStr(allquery,"'")<>0 or InStr(allquery,"%a1a1")<>0 or InStr(allquery,"%24")<>0 or InStr(allquery,"$")<>0 or InStr(allquery,"%3b")<>0 or InStr(allquery,";")<>0 or InStr(allquery,":")<>0 or InStr(allquery,"%%")<>0 or InStr(allquery,"%3c")<>0 or InStr(allquery,"<")<>0 or InStr(allquery,">")<>0 or InStr(allquery,"--")<>0 or InStr(allquery,"sp_")<>0 or InStr(allquery,"xp_")<>0 or InStr(allquery,"exec")<>0 or InStr(allquery,"&amp;#92;")<>0 or InStr(allquery,"delete")<>0 or InStr(allquery,"dir")<>0 or InStr(allquery,"exe")<>0 or InStr(allquery,"select")<>0 or InStr(allquery,"Update")<>0 or InStr(allquery,"cmd")<>0 or InStr(allquery,"*")<>0 or InStr(allquery,"^")<>0 or InStr(allquery,"(")<>0 or InStr(allquery,")")<>0 or InStr(allquery,"+")<>0 or InStr(allquery,"copy")<>0 or InStr(allquery,"format")<>0 or not(isnumeric(request("id"))) then%>
<script Language="JavaScript">window.top.location.href="Error.asp?allquery=<%=allquery%>"</script>
<%Response.End
end if
dim startime,rs
startime=timer()


On Error Resume Next '防止暴库处理
db="data.mdb" '数据库路径
set conn = Server.CreateObject("ADODB.Connection")
connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" &amp; Server.MapPath(""&amp;db&amp;"")
conn.Open connstr




If Err Then


err.Clear
Set Conn = Nothing
Response.Write "数据库连接出错,请检查连接字串。防止暴库处理。"
Response.End
End If
%>

相关的 CSS样式表;
*{
margin:0;
padding:0;
}
body{
text-align:center;
margin:0;
background-color:#E0E6D9;
font-size:90% !important;
font-size:88%;
font-family:tahoma,verdana,arial;
}
img{
border-width:0;
}
form{
margin:0;
}
i{
display:none;
}
u{
display:none;
}
a{
color:#333399;
}
.highlight{
background-color:#0e0;
font-weight:bold;
padding-left:2px;
padding-right:2px;
}
.caption{
display:none;
}
.notice{
border:1px dotted #ccc;
background-color:#ffc;
padding:5px;
font-size:.9em;
}

/* base element *********************************************************/
#top{
text-align:left;
width:750px;
margin:auto;
overflow:hidden;
}

/* head *****************************************************************/
#header{
background-position:10px center;
height:22px;
margin:9px;
}
#header #title{
display:none;
}
#header #subtitle{
font-weight:bold;
font-size:70% !important;
font-size:80%;
font-family:verdana,arial;
margin:5px 10px 0 10px;
float:right;
color:#666677;
}

/* navigation ***********************************************************/
#navigation{
height:25px;
padding:6px 10px 0 10px;
background-color:#667799;
background-image:url(mxna/navbg.gif);
}
#navigation a{
font-size:85%;
color:#ffffff;
text-decoration:none;
padding-right:15px;
padding-left:15px;
border-right:1px solid #778899;
height:50px;
}
#navigation a:hover{
color:#ccccff;
}
#navigation #search{
float:right;
}
#navigation #search form{
margin:0;
}
#navigation #q{
font-size:80%;
border-width:1px;
font-weight:bold;
padding-left:5px;
}
#navigation .button{
font-size:80%;
border-width:1px;
}
#navigation .selected{
border-bottom:3px solid #ffffff;
}

/* category ********************************************************/
#category{
margin-top:20px;
background-color:#ffffff;
background-image:url(mxna/topRounded.gif);
background-repeat:no-repeat;
padding:7px 10px 5px 10px;
}
#category a{
font-size:75%;
margin-right:10px;
color:#333366;
text-decoration:none;
}
#category a:hover{
text-decoration:underline;
}
#category .selected{
border-bottom:3px solid #00dd00;
font-weight:bold;
}

/* news aggregator *************************************************/
#aggregator{
background-color:#ffffff;
padding:5px;
font-size:100% !important;
font-size:98%;
}
#aggregator .feedCount{
float:right;
font-size:70%;
margin-top:-51px;
}
#aggregator .message{
margin:2px;
margin-left:26px;
margin-bottom:15px;
font-size:90%;
color:#003366;
}
#aggregator .news{
margin-bottom:20px;
}
#aggregator .news .title{
margin:0;
margin-bottom:10px;
background-color:#f3f3f3;
padding-top:1px !important;
padding:0 5px 2px 23px;
font-weight:bold;
background-image:url(mxna/newEntryIcon.gif);
background-repeat:no-repeat;
background-position:2px center;
}
#aggregator .news .title a{
color:#000066;
text-decoration:none;
font-size:85% !important;
font-size:80%;
}
#aggregator .news .title a:hover{
text-decoration:underline;
}
#aggregator .news .creator{
font-size:85%;
font-weight:normal;
float:right;
clear:both;
margin:-43px 0 0 0 !important;
margin-top:-33px;
padding-right:5px;
}
#aggregator .news .creator a{
text-decoration:none;
color:#888888;
}
#aggregator .news .creator a:hover{
text-decoration:underline;
}
#aggregator .news .creator .name{
font-size:70%;
display:block;
}
#aggregator .news .floatLeft{
margin:0 13px 0 0;
float:left;
padding:5px;
width:auto;
}
#aggregator .news .summary{
font-size:88%;
margin:3px;
margin-top:25px;
line-height:160%;
}
#aggregator .news .pubDate{
font-size:80%;
color:#999999;
padding-left:3px;
float:left;
margin-top:-18px !important;
margin-top:-4px;
}
#aggregator .news .related{
padding-left:2px;
}
#aggregator .news .related a{
margin-right:10px;
color:#999999;
font-size:95% !important;
font-size:85%;
text-decoration:none;
}
#aggregator .news .related a:hover{
text-decoration:underline;
}
#aggregator .news .related .search,
#aggregator .news .related .similar{
background-image:url(mxna/searchIcon.gif);
background-repeat:no-repeat;
background-position:left center;
height:16px;
padding:2px 0 2px 20px;
}
#aggregator .news .related .permaLink{
display:none;
}
#aggregator .blog{
}
#aggregator .blog{
margin-bottom:10px;
}
#aggregator .blog .title{
background-image:url(mxna/newEntryIcon.gif);
background-repeat:no-repeat;
background-position:2px center;
padding-left:26px;
display:block;
font-size:90%;
}
#aggregator .blog a{
color:#333366;
text-decoration:none;
}
#aggregator .blog a:hover{
text-decoration:underline;
}
#aggregator .blog dd{
margin-left:26px;
}
#aggregator .blog .lastUpdate{
display:block;
color:#000033;
}
#aggregator .blog .lastUpdate i{
font-style:normal;
display:inline;
}
#aggregator .categoryCaption{
display:block;
background-color:#f3f3f3;
margin-bottom:10px;
padding-left:2px;
}

#aggregator .code{
display:block;
background-color:#f6f6f3;
padding:9px;
margin:5px 0px 5px 0px;
color:#000000;
font-family:'Courier New',Courier;
}

/* pager ***********************************************************/
#pager{
font-family:fixedsys,system,tahoma,verdana,arial;
margin-bottom:10px;
padding:0 15px 15px 15px;
background-color:#ffffff;
background-image:url(mxna/bottomRounded.gif);
background-repeat:no-repeat;
background-position:left bottom;
}
#pager a{
margin-right:5px;
color:#333366;
}
#pager .selected{
font-weight:bold;
}

/* links ***********************************************************/
#links{
font-size:80%;
float:right;
padding:10px;
}
#links a{
font-size:90%;
color:#333366;
text-decoration:none;
}
#links a:hover{
text-decoration:underline;
}
#links .caption{
display:inline;
font-weight:normal;
}

/* footer **********************************************************/
#footer{
padding:10px;
font-size:75%;
color:#333333;
}


简单数据库链接;
<%
On Error Resume Next
dim db
db="data.mdb"
set conn = Server.CreateObject("ADODB.Connection")
connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" &amp; Server.MapPath(""&amp;db&amp;"")
conn.Open connstr




If Err Then


err.Clear
Set Conn = Nothing
Response.Write "数据库连接出错,请检查连接字串。防止暴库处理。"
Response.End
End If
%>

我的一点xml的看法和注意事项 (指的是5do8 aspxuexi.com  asp学习网整理此文)

xml其实可以说是html的老爹,他的道术高在他的可扩展型
比如:<top>
<left>Lin</left>
</top>更加可视,便于开发和维护,是不是简明了好多?

利用xml的这些标签可以生成xhtml文件,这方面我还不成熟,以后在研究一下。
就是说,用户可以自定义元素,抽个例子:

首先在css上定义:
#footer{
padding:10px;
font-size:75%;
color:#333333;
}

'在asp文件中这样用:
<div id="footer">
copy; 2004 w3.org.cn www.aspxuexi.com
Powered 耕耘村 [www.5do8.com]

</div>

反正就这么回事!


首先当然管理员登陆拉,干什么?去添加新闻呀!记住,我的标题上有个xml,呵呵,你存asp文件的时候要这样做:
在第一行开始【当然在code上】添加下面的话或者要出现相似语句:


首先当然管理员登陆拉,干什么?去添加新闻呀!记住,我的标题上有个xml,呵呵,你存asp文件的时候要这样做:
在第一行开始【当然在code上】添加下面的话或者要出现相似语句:


<!--#include file="conn.asp"-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Generator" content="BXNA/V0.05a" />
<meta name="author" content="LeXRus" />
<meta name="keywords" content="耕耘村 编的菜鸟新闻[xml+asp+access] by老农" />
<meta name="robots" content="all" />
<title>耕耘村 编的菜鸟新闻[xml+asp+access] by老农</title>
<style type="text/css" title="MXNA">@import "style/css.css";</style>
</head>

不按照要求可能出现未知错误,

请在最所有页面上面加上<%Session.CodePage=65001%> 杜绝乱码  (utf-8)

这是显示新闻的页面,查找数据,并且显示

bgaidu Says: Email Homepage
2009/04/23 20:39
web页走向标准:css+div
原先没有好好的规划以下css的准确定位,现在我要专门上一节说说css的定位,div+css定位确实不好把握,我最近作了我的主战,要全部用css+div的,看看浏览器兼容么,opera不怎么样,好像css里面的字体设置位百分比就一团糟,也不知道为什么,可能还是ie6.0好吧。上面阳光说过,我得源码里面参了table标签,很糟,当然这次也要解决了。

也不知道css+div是不是这个web开发区的范围,我感觉自己定义css+div也算编程的一部分吧,废话不说,进入正题:web页走向标准:css+div
学css的基础?我不想写了,看书就可以搞定,主要还是几个:

前景颜色,背景,宽度,字体,列表样式,元素的边缘距离,文本对齐方式,文本修饰和间距。 。(//asp学习网:aspxuexi.com//



body{
text-align:center;
margin:0;
background-color:#E0E6D9;
font-size:90% !important;
font-size:88%;
font-family:tahoma,verdana,arial;
}

就是作用全局。因为body是html的主体吧! 。(//asp学习网:aspxuexi.com//


#bxna{
text-align:left;
width:750px;
margin:auto;
overflow:hidden;
}

用户定义的,使用的时候<div id="bxna">**</div>



#navigation a{
font-size:85%;
color:#ffffff;
text-decoration:none;
padding-right:15px;
padding-left:15px;
border-right:1px solid #778899;
height:50px;

在继承bxna基础上使用,使用的时候<div id="bxna"><a href="">**</a></div>应用这个样式。(//asp学习网:aspxuexi.com//)



#navigation #search{
float:right;
}

使用的时候因为是#定义,故是class。基本上就是这几种吧,看你怎么发挥和灵活应用了,我在我得经验中还是喜欢从下往上写css,感觉容易掌握。过2天我把全部更新了,奉送上来吧!
有关css+div走向标准的态度我的态度还是积极的,毕竟在浏览器方面好多了,这个东西写起来感觉没什么好写的,做起来很难,希望新手自己动手试试看。

动手试试看吧,老兄,那么长的文章你都翻到最后了。





当验证seeion不成功的时候,转到登陆页面, 例子为: <%If Session("szd_admin")="True" Then '//asp学习网:aspxuexi.com//%> <a href="LOGOUT.ASP">退出</a> <%End If%> 这里可以把这个code另存为一个一个单独文件,我们这里存为szd_chk.asp,在限制的页面add.asp最上面加上<!-- #include file="szd_chk.asp"-->就包含了,验证是不是合法用户了。 退出的时候把seeion的参数写为空即可 <% Session("szd_admin")="" Response.Redirect ("index.asp") %> 可以把这个文件另存为logout.asp做一个超级一个链接,就是退出登陆: <%If Session("szd_admin")="True" Then%> <a href="LOGOUT.ASP">退出</a> <%End If%> 这2个操作一般只有管理员有权限,所以在相关的页面上面包含文件: <!-- #include file="szd_chk.asp"--> 为什么在上一讲李很清楚。 关于这2个操作和插入数据其实没有什么2样,都是sql语句的变化而已。 编辑新闻的关键的sql语句是: exec="select * from news where id="&request.form("id") set rs=server.createobject("adodb.recordset") rs.open exec,conn,1,3 '这是一个查找编号id的新闻,并且打开与数据库的连接 然后是把数据库里面的数据临时替换为表单修改的结果 : rs("szd_title")=request.form("title") rs("szd_lanmu")=request.form("lanmu") rs("szd_content")=request.form("content") rs("szd_jibie")=request.form("jibie") then判断数据的合法性,如果不合法,结束返回, : [Copy to clipboard]CODE: if rs("szd_title")="" then response.write "<SCRIPT language=JavaScript>alert('title is worry!');" response.write "this.location.href='vbscript:history.back()';</SCRIPT>" response.end end if if rs("szd_content")="" then response.write "<SCRIPT language=JavaScript>alert('content is worry!!');" response.write "this.location.href='vbscript:history.back()';</SCRIPT>" response.end end if if rs("szd_jibie")="" then response.write "<SCRIPT language=JavaScript>alert('jibie is worry!');" response.write "this.location.href='vbscript:history.back()';</SCRIPT>" response.end end if if rs("szd_lanmu")="" then response.write "<SCRIPT language=JavaScript>alert('lanmu is worry!!');" response.write "this.location.href='vbscript:history.back()';</SCRIPT>" response.end end if 如果合法,更新数据,更新时牵扯到另一个关键的sql语句: rs.update'更新数据 rs.close‘关闭连接 set rs=nothing’清空保存 conn.close set conn=nothing‘释放内存 <meta http-equiv="refresh" content="2;URL=index.asp"> <div align="center">mad is ok, wait a little! </div> <p>&nbsp;</p> <div align="center"><a href="index.asp">click here go home</a></div> 然后是删除新闻,这里只用一个关键语句,id是用户提交的id号,这个id是在页面显示的时候链接上的: exec="delete * from news where id="&request.querystring("id") conn.execute exec <meta http-equiv="refresh" content="2;URL=index.asp"> <div align="center"> delete this data succeed '//asp学习网:aspxuexi.com//</div> <p>&nbsp;</p> <div align="center"> <a href="index.asp">click here go home</a></div> 现在我们可以看到2个操作都有id这个参数,怎么的来的呢? 在首页循环显示页面的地方,如果是管理员,显示编辑和删除的链接 <%If Session("szd_admin")="True" Then%> <a href="del.asp?id=<%=rs("id")%>" onClick="{if(confirm('are you sure del this data?')) '这是一个js控制的确认操作的过程,很有用的。相关请查confirm的用法 {return true;}return false;}">delete</a>&nbsp <a href="edit.asp?id=<%=rs("id")%>">edit</a> <%End If%> 上面的edit.asp文件表单和添加新闻没什么2样,只是sql语句上多了一条查询的条件,查找用户提交的新闻编号: exec="select * from news where id="&request.querystring("id") set rs=server.createobject("adodb.recordset") '//asp学习网:aspxuexi.com//rs.open exec,conn 还有,表单的初始值要变为原先当前的数据库数据,这样利于编辑 新闻标题: <input name="title" type="text" id="title" value="<%=rs("szd_title").value%>"> 新闻内容:<textarea name="content" id="content" cols=70% rows=8><%=rs("szd_content").value%></textarea> 关键不要忘了id参数,这是链接提交页面的关键,设置为隐藏 [Copy to clipboard]CODE: <input name="id" type="hidden" id="id" '//asp学习网:aspxuexi.com//value="<%=request.querystring("id")%>">  function Cbold() { fontbegin="[B]"; fontend="[/B]"; fontchuli();  其他的全部相似的,这里包含的js代码是<div class="summary"></div>[/div] 这个大格式已经确定,看看css里面如何写: [code]#aggregator .news .summary{ font-size:80%; margin:8px; margin-top:25px; line-height:150%; }
bgaidu Says: Email Homepage
2009/04/23 20:39
缓存的应用

关于缓存,我得看法是积极的,我还是鼓励用缓存,现看看这是什么东西:

缓存(Cache):使用本地硬盘作为缓存来存储一些下载的内容,当以后的用户试图连接那一网页时,数据将直接从本地硬盘中读取,而不是通过通信线路传输。速度会非常快而且节省费用,限使使用了缓存,最终用户也可以通过使用浏览器的“刷新”钮来读取最新的信息。
修正:缓存是保存在服务器上的,使用的时候尽量最块释放,节省资源。
现在有好几级了,有兴趣的朋友自己研究去,在这里说超出菜鸟级别了。
看看怎么设置缓存[其实我感觉还是asp的一个对象:Application的功能吧],例子:


If Len(Trim(Application("Setting")))<8 Then '建立缓存
Clscache()
Sub Clscache()
set rs = server.CreateObject ("adodb.recordset")
sqlstr="select top 1 INfor,Setting from Y_Config"
rs.open sqlstr,conn,1,1
SQLNum=SQLNum+1
Application.Lock
Application("Infor") = rs("Infor")
Application("Setting") = rs("Setting") '(//asp学习网:aspxuexi.com//
Application.UnLock
Rs.close
Set rs=nothing
End Sub


Else
End if

运用的时候:



Infor=Application("Infor")
Setting=Application("Setting")

<%=infor%>

这个东西可是个好东西,速度不用说,哉块!

为了让用户的cpu资源得到释放,大部分的时候必须释放掉:



Sub CleanCache()
Application("Infor")=""
Application("Setting")=""
End sub
bgaidu Says: Email Homepage
2009/04/23 20:39
模块划结构--过程的使用



其实还是一些VBScript 过程,是分为2中的,function和sub。

1:Sub 过程是包含在 Sub 和 End Sub 语句之间的一组 VBScript 语句,执行操作但不返回值。Sub 过程可以使用参数(由调用过程传递的常数、变量或表达式)。如果 Sub 过程无任何参数,则 Sub 语句必须包含空括号 ()。



<%
Sub Copyright()
%>

<div id="footer">
<div id="copyright">&copy; Powered by tillage home
<%
dim endtime

endtime=timer()
%>
Time out:<%=FormatNumber((endtime-startime)*1000,3)%>
</div></div>


<%
End Sub
%>

在页面先包含这个文件,然后



<%
copyright()

%>

就相当于输入sub里面的部分了,这个例子和include file实现结果一样,当然,它还可以实现其他的,返回验证呀



sub WriteErrMsg() '//asp学习网:aspxuexi.com//
dim strErr
strErr=strErr & "产生错误的可能原因:" & errmsg &"" & vbcrlf
response.write strErr
end sub

2.Function 过程
Function 过程是包含在 Function 和 End Function 语句之间的一组 VBScript 语句。Function 过程与 Sub 过程类似,但是 Function 过程可以返回值。Function 过程可以使用参数(由调用过程传递的常数、变量或表达式)。如果 Function 过程无任何参数,则 Function 语句必须包含空括号 ()。Function 过程通过函数名返回一个值,这个值是在过程的语句中赋给函数名的。Function 返回值的数据类型总是 Variant。

可以在function里面灵活的运用sub比如,验证用户的信息:



'**************************************************
'函数名:CheckUserLogined
'作 用:检查用户是否登录
'参 数:无
'返回值:True ----已经登录
' False ---没有登录
'**************************************************
function CheckUserLogined()
dim Logined,Password,rsLogin,sqlLogin
Logined=True
User=Request.Cookies("5do8")("User")
Password=Request.Cookies("5do8")("Password")
jibie=Request.Cookies("5do8")("jibie")
if User="" then
Logined=False
end if
if Password="" then
Logined=False
end if
if User="" then
Logined=False

end if

if jibie="" then
Logined=False
jibie=9
end if

if Logined=True then
user=replace(trim(user),"'","")
password=replace(trim(password),"'","")

set rsLogin=server.createobject("adodb.recordset")

sqlLogin="select * from admin where
szd_user ='" & user & "' and szd_password ='" & password &"'"
rsLogin.open sqlLogin,Conn,1,1
if rsLogin.bof and rsLogin.eof then '//asp学习网:aspxuexi.com//

Logined=False
else
if password<>rsLogin("szd_password") then
Logined=False
end if
User=rsLogin("szd_user")

if rsLogin("szd_cookie")=1 then
ValidDays=rsLogin("szd_session")
elseif rsLogin("szd_cookie")=2 then
ValidDays=rsLogin("szd_session")*30
elseif rsLogin("szd_cookie")=3 then
ValidDays=rsLogin("szd_session")*365
end if
ValidDays=ValidDays-DateDiff("D",rsLogin("szd_last_time"),now())
end if
rsLogin.close
set rsLogin=nothing
end if
CheckUserLogined=Logined

if jibie=1 then
jibies "Practical villageR"
elseif jibie=2 then
jibies="Laborious villageR"
elseif jibie=3 then
jibies="Superior villageR" '(//asp学习网:aspxuexi.com//

elseif jibie=4 then
jibies= "CEO of villageR"
end if


end function

这个function例子要检查的是用户是不是等陆了,使用的时候直接在显示的地方写上


<% call ShowUserLogin() %>
bgaidu Says: Email Homepage
2009/04/23 20:39
循环查找,显示,和上一讲的显示方式一样,关键代码:

<div class="news">


<%
SQLStr="SELECT * From huifu where szd_news_id="&cint(request.querystring("id"))&" order by id desc"
set rsd=conn.execute(sqlstr)
if rsd.eof and rsd.bof then
response.write "no reply data "

else
do while not rsd.eof
%>
<dl>
<dd>
<h6 class="title">

<a></a>&nbsp&nbsp&nbsp

</h6>

<small class="pubDate">
<i>Publish date: </i><%=rsd("szd_user").value%>在<%=rsd("szd_times").value%>回复道:</small>


<div class="summary">
<%=ubbcode(rsd("szd_content").value)%>


</div>
<small class="related">

<a class="hits" >IP:<%=rsd("szd_ip").value%></a>

<a class="similar"></a>
</small>




</dd>
</dl>

<%
rsd.movenext
loop
end if
rsd.close
set rsd=nothing
%>

<h6 class="title">
<a href="responses.asp?id=<%=request.querystring("id")%>" >我要回复</a>
</h6>
</div>

现在显示插入没问题了,还有要统计的,这里用到一个关键的sql语句[count的实例用法,在这里统计满足有主题信息id的szd_news_id的数目和]:



<a class="szdtitle">
[ <%
sqlaa="select count(*) as szd from huifu where szd_news_id="&ssid
set rss=conn.execute(sqlaa)
newsid=rss("szd")
set rss=nothing

%>
<%=newsid%> '//asp学习网:aspxuexi.com//

/<%=rs("szd_hits").value%>]

</a>

关于统计的几个常用关键词:
AVG(字段名) 得出一个表格栏平均值
COUNT(*¦字段名) 对数据行数的统计或对某一栏有值的数据行数统计
MAX(字段名) 取得一个表格栏最大的值
MIN(字段名) 取得一个表格栏最小的值
SUM(字段名) 把数据栏的值相加
引用以上函数的方法:
sql="select sum(字段名) as 别名 from 数据表 where 条件表达式"
set rs=conn.excute(sql)
bgaidu Says: Email Homepage
2009/04/23 20:38
用户可回复操作的一点看法和数据表设计


这个问题原先没有考虑进去,做到后来才想到了,其实我感觉这个也很重要,现在你可以把留言版,小新闻发布都会做了吧,数据库的设计今天要增加一个表名:

huifu:
id:自动编号
szd_news_id,数字型,50,保存对应主题贴的id号
szd_content,备注,保存内容
szd_times,添加时间
szd_ip,添加者的ip地址
szd_user,添加者的name

主建id,自动编号,在每一个主题帖子的下面连接一个




<h6 class="title">
<a href="responses.asp?id=<%=request.querystring("id")%>" >我要回复</a>
</h6>


转到回复页面,传id的值。回复的页面和数据添加的没什么大的区别,只增加了2个隐藏参数和一个用户名:用户的ip和主题贴的id



<input name="id" type="hidden" id="id"
value="<%=request.querystring("id")%>">

<input name="ip" type="hidden" id="ip"
value="<%=request.ServerVariables("REMOTE_ADDR")%>">

<input type="text" name="user" id="user" size="5"
value="<%=Session("szd_name")%>" />

处理的页面直接插入数据,插入成功的话跳转主题贴:



<meta http-equiv="refresh" content="2;URL=szd_view.asp?id=<%=id%> ">

页面处理的代码是


<% @LANGUAGE = VBScript %>
<!--#include file="conn0.asp"-->
<%Session.CodePage=65001%>
<%
id=request.form("id")
user=request.form("user")
content=request.form("content")
jibie=request.form("jibie")
ip=replace(trim(request.form("ip")),"'","")

if id="" or user="" or content="" then

response.write "<a href='javascript:history.back()'>But you put nothing ,click here to new</a>"
response.end

else
%>

<%
set rs=server.createobject("adodb.recordset")
sql="select * from huifu"
rs.open sql,conn,1,3

rs.addnew
rs("szd_news_id")=id
rs("szd_content")=content
rs("szd_user")=user
rs("szd_jibie")=jibie
rs("szd_ip")=ip

rs.update

end if
rs.close
conn.close
set conn=nothing

%>
<meta http-equiv="refresh" content="2;URL=szd_view.asp?id=<%=id%> ">

<div align="center">ok,plese wait 2 min!
</div>

<p>&nbsp;</p>
<div align="center">
<p><a href="index.asp">ok!</a></p>
<p><a href="index.asp">to home</a></p>
</div>
<%
%>

当显示主题页面的时候显示回复的帖子,只需要把条件where改为


SQLStr="SELECT * From huifu where
szd_news_id="&cint(request.querystring("id"))&" order by id desc"
set rsd=conn.execute(sqlstr)
if rsd.eof and rsd.bof then
response.write "no reply data "
else
do while not rsd.eof
bgaidu Says: Email Homepage
2009/04/23 20:38
也许你注意到了,每个标题上有个链接是对应的信息主要内容的,不详细说怎么做了,主要还是连接的时候传一个id,对应可以搜索出信息内容的。源码可以参考
<%

SQLStr="SELECT * From news where id="&request.querystring("id")
set rs=conn.execute(sqlstr)
if rs.eof and rs.bof then
response.write "worry"
response.end
else
do while not rs.eof
%>
<dl>
<dd>

<h6 class="title">
<a >※&nbsp<%=Htmlencode(rs("szd_title")) %></a>
</h6>


<small class="pubDate">
<i>Publish date: </i><%=rs("szd_times").value%></small>
<small class="creator">
<%
dim lanmu_id
lanmu_id=rs("szd_lanmu")

sqla="Select * from lanmu where id="&lanmu_id

set szda=conn.execute(sqla)


do while not szda.eof

lanmu=szda("szd_lanmu")


%>
<i>Posted in </i>
<%=lanmu%>
<%szda.MoveNext

Loop

set szda=nothing
%>
<%If Session("szd_admin")="True" Then%>
<a href="del.asp?id=<%=rs("id")%>" onClick="{if(confirm('are you sure del this data?')) '//asp学习网:aspxuexi.com//
{return true;}return false;}">delete</a>&nbsp

<a href="edit.asp?id=<%=rs("id")%>">edit</a>
<%End If%>

</small>




<div class="summary">
<%=ubbcode(rs("szd_content").value)%>


</div>
<small class="related">

<a class="hits" >点击次数:<%=rs("szd_hits").value%></a>

<a class="similar"></a>


</small>

<%
rs.movenext
loop
end if
rs.close
set rs=nothing
%>

<h6 class="title">
<a >回复</a>
</h6>

</dd>
</dl>

</div>

好了,你可以在上一讲的基础上试试效果了,这一讲我的源码已经写到这里了,不大算打包了,也防止我的努力付之东流,还是希望新手自己动手,实在需要整个源码的话pm我,或者更到我结束这个主题的时候,再打包吧。
bgaidu Says: Email Homepage
2009/04/23 20:38
<div class="summary"></div>[/div]
这个大格式已经确定,看看css里面如何写:
[code]#aggregator .news .summary{
font-size:80%;
margin:8px;
margin-top:25px;
line-height:150%;
}



现在好了,我们已经在大体明白了怎么干了,现在是数据循环了,思路是这样的:

循环查找栏目,并且在一级栏目对应的news表里面查出信息,前面的表我在第一讲说的很清楚,看看,news里面szd_lanmu对应的表lanmu里面的id号。

就这些,相关怎么链接,怎么查出,在上几次中已经很明白了,我现在只给源码的部分:
<div class="news">

<%

sqla="Select * from lanmu order by id desc" '//asp学习网:aspxuexi.com//

set szda=conn.execute(sqla)


do while not szda.eof

lanmu=szda("szd_lanmu")
szd_id=szda("id")

%>


<dl>
<dd>

<h6 class="title">
<a ><%=szda("szd_lanmu").value%></a>
</h6>
<div class="summary">
<% SQLStr="SELECT top 10 * From news where szd_lanmu="&szd_id&" order by id DESC "
set rs=conn.execute(sqlstr)
do while not rs.eof
%>
<a href="szd_view.asp?id=<%=rs("id")%>" class="szdtitle" target="_blank">&nbsp★&nbsp<%=Htmlencode(rs("szd_title")) %>&nbsp
[<%=rs("szd_hits").value%>]</a>
<!-- <%If Session("szd_admin")="True" Then%>
<small class="creator"> <a href="del.asp?id=<%=rs("id")%>" onClick="{if(confirm('are you sure del this data?'))
{return true;}return false;}">delete</a>&nbsp <a href="edit.asp?id=<%=rs("id")%>">edit</a> </small>
<%End If%> -->
<br>
<% rs.movenext
loop

rs.close
set rs=nothing
%>
</div>


<%
szda.MoveNext

Loop

set szda=nothing
%>
</dd>
</dl>
</div>
bgaidu Says: Email Homepage
2009/04/23 20:38
我们排版的数据全部放在这个div里面,它的css属性是:

/* news aggregator *************************************************/
#aggregator{
background-color:#ffffff;
padding:5px;
font-size:100% !important;
font-size:98%;
}
#aggregator .feedCount{
float:right;
font-size:76%;
margin-top:-51px;
}
#aggregator .message{
margin:2px;
margin-left:26px;
margin-bottom:15px;
font-size:90%;
color:#003366;
}
#aggregator .news{
margin-bottom:20px;
}
#aggregator .news .title{
margin:0;
margin-bottom:10px;
background-color:#f3f3f3;
padding-top:1px !important;
padding:0 5px 2px 23px;
font-weight:bold;
background-position:2px center;
}

/* 老农的定义 */

#aggregator .news .szdtitle{
color:#000000;
text-decoration:none;
font-size:85% !important;
font-size:80%;
}


#aggregator .news .title a{
color:#000066;
text-decoration:none;
font-size:85% !important;
font-size:80%;
}
#aggregator .news .title a:hover{
text-decoration:underline;
}
#aggregator .news .creator{
font-size:70%;
font-weight:normal;
float:right;
clear:both;
margin:-43px 0 0 0 !important;
margin-top:-33px;
padding-right:5px;
}
#aggregator .news .creator a{
text-decoration:none;
color:#888888;
}
#aggregator .news .creator a:hover{
text-decoration:underline;
}
#aggregator .news .creator .name{
font-size:70%;
display:block;
}
#aggregator .news .floatLeft{
margin:0 13px 0 0;
float:left;
padding:5px;
width:auto;
}

/* dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd*/
#aggregator .news .summary{
font-size:80%;
margin:8px;
margin-top:25px;
line-height:150%;
}

#aggregator .news .hits{
font-size:80%;
color:#336699;
padding-left:3px;
float:left;
margin-top:-18px !important;
margin-top:-4px;
}


#aggregator .news .pubDate{
font-size:80%;
color:#999999;
padding-left:3px;
float:left;
margin-top:-18px !important;
margin-top:-4px;
}



#aggregator .news .related{
padding-left:2px;
}


#aggregator .news .related a{
margin-right:10px;
color:#999999;
font-size:95% !important;
font-size:85%;
text-decoration:none;
}
#aggregator .news .related a:hover{
text-decoration:underline;
}
#aggregator .news .related .search,
#aggregator .news .related .similar{
background-position:left center;
height:16px;
padding:2px 0 2px 20px;
}
#aggregator .news .related .permaLink{
display:none;
}


其中,大部分还是经典博客的标签,我只添加了一个标签:


/* 老农的定义 */

#aggregator .news .szdtitle{
color:#000000;
text-decoration:none;
font-size:85% !important;
font-size:80%;
}

这个标签就显示的是你看到的页面上的标题排版格式。

定义完大的标签后,我们看看里面的怎么看,我们要设计栏目和标题的格式不一样,单独定义的标签id:title


#aggregator .news .title a{
color:#000066;
text-decoration:none;
font-size:85% !important;
font-size:80%;
}

这样排的


<h6 class="title">
<a ><%=szda("szd_lanmu").value%></a>
</h6>

然后是对应下面的信息了,把他们放在一块,单独定义一个标签id
bgaidu Says: Email Homepage
2009/04/23 20:37
信息接受的页面不变,现在数据库保存的是ubb转换来的数据,信息显示的时候要转回去,还是匹配转换,这里的转换页面的代码是


<%
dim re,strIMGInPosts,strAllowHTML,strIcons,strflash,picurl
Dim abgcolor
strIMGInPosts = "1" ' 1=显示图片 0=显示图片的链结
strAllowHTML = "0" 'HTML功能 1=开启 0=关掉
strIcons = "1" '显示icon 1=开启 0=关掉
strflash = "1" '显示Flash 1=开启 0=关掉
picurl = "Images\UbbPic\"
function UBBCode(strContent)
if strAllowHTML <> 1 then
strContent = Server.HTMLEncode(strContent)
strContent = replace(strContent,VBCrlf,"<br> ")
else
strContent = Server.HTMLcode(strContent)
end if

Set re=new RegExp
re.IgnoreCase =true
re.Global=True

re.Pattern="(script)"
strContent=re.Replace(strContent,"s cript")

re.Pattern="(\[i\])(.[^\[]*)(\[\/i\])"
strContent=re.Replace(strContent,"<i>$2</i>")
re.Pattern="(\[u\])(.[^\[]*)(\[\/u\])"
strContent=re.Replace(strContent,"<u>$2</u>")
re.Pattern="(\[b\])(.[^\[]*)(\[\/b\])"
strContent=re.Replace(strContent,"<b>$2</b>")
re.Pattern="(\[fly\])(.*)(\[\/fly\])"
strContent=re.Replace(strContent,"<marquee>$2</marquee>")
re.Pattern="(\[size=1\])(.[^\[]*)(\[\/size\])"
strContent=re.Replace(strContent,"<font size=1>$2</font>")
re.Pattern="(\[size=2\])(.[^\[]*)(\[\/size\])"
strContent=re.Replace(strContent,"<font size=2>$2</font>")
re.Pattern="(\[size=3\])(.[^\[]*)(\[\/size\])"
strContent=re.Replace(strContent,"<font size=3>$2</font>")
re.Pattern="(\[size=4\])(.[^\[]*)(\[\/size\])"
strContent=re.Replace(strContent,"<font size=4>$2</font>")
re.Pattern="(\[center\])(.[^\[]*)(\[\/center\])"
strContent=re.Replace(strContent,"<center>$2</center>")

if strIMGInPosts = "1" then
re.Pattern="(\[IMG\])(.[^\[]*)(\[\/IMG\])"
strContent=re.Replace(strContent," <A HREF=""$2"" TARGET=_blank><IMG SRC=""$2"" border=0 alt='按此在新窗口浏览图片' onload=""javascript:if(this.width>screen.width-333)this.width=screen.width-333""></A>")
end if


re.Pattern="\[DIR=*([0-9]*),*([0-9]*)\](.[^\[]*)\[\/DIR]"
strContent=re.Replace(strContent,"<object classid=clsid:166B1BCA-3F9C-11CF-8075-444553540000 codebase=http://download.macromedia.com/pub/shockwave/cabs/director/sw.cab#version=7,0,2,0 width=$1 height=$2><param name=src value=$3><embed src=$3 pluginspage=http://www.macromedia.com/shockwave/download/ width=$1 height=$2></embed></object>")
re.Pattern="\[QT=*([0-9]*),*([0-9]*)\](.[^\[]*)\[\/QT]"
strContent=re.Replace(strContent,"<embed src=$3 width=$1 height=$2 autoplay=true loop=false controller=true playeveryframe=false cache=false scale=TOFIT bgcolor=#000000 kioskmode=false targetcache=false pluginspage=http://www.apple.com/quicktime/>")
re.Pattern="\[MP=*([0-9]*),*([0-9]*)\](.[^\[]*)\[\/MP]"
strContent=re.Replace(strContent,"<object align=middle classid=CLSID:22d6f312-b0f6-11d0-94ab-0080c74c7e95 class=OBJECT id=MediaPlayer width=$1 height=$2 ><param name=ShowStatusBar value=-1><param name=Filename value=$3><embed type=application/x-oleobject codebase=http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701 flename=mp src=$3 width=$1 height=$2></embed></object>")
re.Pattern="\[RM=*([0-9]*),*([0-9]*)\](.[^\[]*)\[\/RM]"
strContent=re.Replace(strContent,"<OBJECT classid=clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA class=OBJECT id=RAOCX width=$1 height=$2><PARAM NAME=SRC VALUE=$3><PARAM NAME=CONSOLE VALUE=Clip1><PARAM NAME=CONTROLS VALUE=imagewindow><PARAM NAME=AUTOSTART VALUE=true></OBJECT><br><OBJECT classid=CLSID:CFCDAA03-8BE4-11CF-B84B-0020AFBBCCFA height=32 id=video2 width=$1><PARAM NAME=SRC VALUE=$3><PARAM NAME=AUTOSTART VALUE=-1><PARAM NAME=CONTROLS VALUE=controlpanel><PARAM NAME=CONSOLE VALUE=Clip1></OBJECT>")

if strflash= "1" then
re.Pattern="(\[FLASH\])(.[^\[]*)(\[\/FLASH\])"
strContent= re.Replace(strContent,"<OBJECT codeBase=http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=4,0,2,0 classid=clsid:D27CDB6E-AE6D-11cf-96B8-444553540000 width=500 height=400><PARAM NAME=movie VALUE=""$2""><PARAM NAME=quality VALUE=high><embed src=""$2"" quality=high pluginspage='http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash' type='application/x-shockwave-flash' width=500 height=400>$2</embed></OBJECT>")
end if

re.Pattern="(\[UPLOAD=gif\])(.[^\[]*)(\[\/UPLOAD\])"
strContent= re.Replace(strContent,"<br><IMG SRC="""&picurl&"gif.gif"" border=0><font color=#999999>This is the upload picture:</font><br><A HREF=""$2"" TARGET=_blank><IMG SRC=""$2"" border=0 alt='Look the picture another page.' onload=""javascript:if(this.width>screen.width-333)this.width=screen.width-333""></A>")
re.Pattern="(\[UPLOAD=jpg\])(.[^\[]*)(\[\/UPLOAD\])"
strContent= re.Replace(strContent,"<br><IMG SRC="""&picurl&"jpg.gif"" border=0><font color=#999999>This is the upload picture:</font><br><A HREF=""$2"" TARGET=_blank><IMG SRC=""$2"" border=0 alt='Look the picture another page.' onload=""javascript:if(this.width>screen.width-333)this.width=screen.width-333""></A>")
re.Pattern="(\[UPLOAD=bmp\])(.[^\[]*)(\[\/UPLOAD\])"
strContent= re.Replace(strContent,"<br><IMG SRC="""&picurl&"bmp.gif"" border=0><font color=#999999>This is the upload picture:</font><br><A HREF=""$2"" TARGET=_blank><IMG SRC=""$2"" border=0 alt='Look the picture another page.' onload=""javascript:if(this.width>screen.width-333)this.width=screen.width-333""></A>")

re.Pattern="(\[UPLOAD=(.[^\[]*)\])(.[^\[]*)(\[\/UPLOAD\])"
strContent= re.Replace(strContent,"<br><IMG SRC="""&picurl&"$2.gif"" border=0> <a href=""$3"">点击浏览该文件</a>")

re.Pattern="(\[URL\])(.[^\[]*)(\[\/URL\])"
strContent= re.Replace(strContent,"<A HREF=""$2"" TARGET=_blank>$2</A>")
re.Pattern="(\[URL=(.[^\[]*)\])(.[^\[]*)(\[\/URL\])"
strContent= re.Replace(strContent,"<A HREF=""$2"" TARGET=_blank>$3</A>")

re.Pattern="(\[EMAIL\])(.[^\[]*)(\[\/EMAIL\])"
strContent= re.Replace(strContent,"<img align=absmiddle src="&picurl&"email1.gif><A HREF=""mailto:$2"">$2</A>")
re.Pattern="(\[EMAIL=(.[^\[]*)\])(.[^\[]*)(\[\/EMAIL\])"
strContent= re.Replace(strContent,"<img align=absmiddle src="&picurl&"email1.gif><A HREF=""mailto:$2"" TARGET=_blank>$3</A>")

re.Pattern = "^(http://[A-Za-z0-9\./=\?%\-&_~`@':+!]+)"
strContent = re.Replace(strContent,"<img align=absmiddle src="&picurl&"url.gif><a target=_blank href=$1>$1</a>")
re.Pattern = "(http://[A-Za-z0-9\./=\?%\-&_~`@':+!]+)$"
strContent = re.Replace(strContent,"<img align=absmiddle src="&picurl&"url.gif><a target=_blank href=$1>$1</a>")
re.Pattern = "[^>=""](http://[A-Za-z0-9\./=\?%\-&_~`@':+!]+)"
strContent = re.Replace(strContent,"<img align=absmiddle src="&picurl&"url.gif><a target=_blank href=$1>$1</a>")
re.Pattern = "^(ftp://[A-Za-z0-9\./=\?%\-&_~`@':+!]+)"
strContent = re.Replace(strContent,"<img align=absmiddle src="&picurl&"url.gif><a target=_blank href=$1>$1</a>")
re.Pattern = "(ftp://[A-Za-z0-9\./=\?%\-&_~`@':+!]+)$"
strContent = re.Replace(strContent,"<img align=absmiddle src="&picurl&"url.gif><a target=_blank href=$1>$1</a>")
re.Pattern = "[^>=""](ftp://[A-Za-z0-9\.\/=\?%\-&_~`@':+!]+)"
strContent = re.Replace(strContent,"<img align=absmiddle src="&picurl&"url.gif><a target=_blank href=$1>$1</a>")
re.Pattern = "^(rtsp://[A-Za-z0-9\./=\?%\-&_~`@':+!]+)"
strContent = re.Replace(strContent,"<img align=absmiddle src="&picurl&"url.gif><a target=_blank href=$1>$1</a>")
re.Pattern = "(rtsp://[A-Za-z0-9\./=\?%\-&_~`@':+!]+)$"
strContent = re.Replace(strContent,"<img align=absmiddle src="&picurl&"url.gif><a target=_blank href=$1>$1</a>")
re.Pattern = "[^>=""](rtsp://[A-Za-z0-9\.\/=\?%\-&_~`@':+!]+)"
strContent = re.Replace(strContent,"<img align=absmiddle src="&picurl&"url.gif><a target=_blank href=$1>$1</a>")
re.Pattern = "^(mms://[A-Za-z0-9\./=\?%\-&_~`@':+!]+)"
strContent = re.Replace(strContent,"<img align=absmiddle src="&picurl&"url.gif><a target=_blank href=$1>$1</a>")
re.Pattern = "(mms://[A-Za-z0-9\./=\?%\-&_~`@':+!]+)$"
strContent = re.Replace(strContent,"<img align=absmiddle src="&picurl&"url.gif><a target=_blank href=$1>$1</a>")
re.Pattern = "[^>=""](mms://[A-Za-z0-9\.\/=\?%\-&_~`@':+!]+)"
strContent = re.Replace(strContent,"<img align=absmiddle src="&picurl&"url.gif><a target=_blank href=$1>$1</a>")

re.Pattern="(\[HTML\])(.[^\[]*)(\[\/HTML\])"
strContent=re.Replace(strContent,"<table width='100%' border='0' cellspacing='0' cellpadding='6' bgcolor='"&abgcolor&"'><td><br><font color=#999999>Now display the Html code:</font><br>$2</td></table>")
re.Pattern="(\[code\])(.[^\[]*)(\[\/code\])"
strContent=re.Replace(strContent,"<table width='100%' border='0' cellspacing='0' cellpadding='6' bgcolor='"&abgcolor&"'><td><br><font color=#999999>Now display the program code:</font><br>$2</td></table>")

re.Pattern="(\[color=(.[^\[]*)\])(.[^\[]*)(\[\/color\])"
strContent=re.Replace(strContent,"<font color=$2>$3</font>")
re.Pattern="(\[face=(.[^\[]*)\])(.[^\[]*)(\[\/face\])"
strContent=re.Replace(strContent,"<font face=$2>$3</font>")
re.Pattern="(\[align=(.[^\[]*)\])(.[^\[]*)(\[\/align\])"
strContent=re.Replace(strContent,"<div align=$2>$3</div>")

re.Pattern="(\[QUOTE\])(.*)(\[\/QUOTE\])"
strContent=re.Replace(strContent,"<table cellpadding=0 cellspacing=0 border=1 WIDTH=94% bordercolor=#000000 bgcolor=#F2F8FF align=center ><tr><td ><table width=100% cellpadding=5 cellspacing=1 border=0><TR><TD BGCOLOR='"&abgcolor&"'>$2</table></table><br>")
re.Pattern="(\[move\])(.*)(\[\/move\])"
strContent=re.Replace(strContent,"<MARQUEE scrollamount=3>$2</marquee>")
re.Pattern="\[GLOW=*([0-9]*),*(#*[a-z0-9]*),*([0-9]*)\](.[^\[]*)\[\/GLOW]"
strContent=re.Replace(strContent,"<table width=$1 style=""filter:glow(color=$2, strength=$3)"">$4</table>")
re.Pattern="\[SHADOW=*([0-9]*),*(#*[a-z0-9]*),*([0-9]*)\](.[^\[]*)\[\/SHADOW]"
strContent=re.Replace(strContent,"<table width=$1 style=""filter:shadow(color=$2, strength=$3)"">$4</table>")

if strIcons = "1" then
re.Pattern="(\[em(.[^\[]*)\])"

strContent=re.Replace(strContent,"<img src="&picurl&"em$2.gif border=0 align=middle>")
end if

set re=Nothing
UBBCode=strContent
end function


function reUBBCode(strContent)
strContent = htmlencode(strContent)
dim re
Set re=new RegExp
re.IgnoreCase =true
re.Global=True

re.Pattern="(\[QUOTE\])(.*)(\[\/QUOTE\])"
strContent=re.Replace(strContent,"")

set re=Nothing
reUBBCode=strContent
end function
%>

这段的思路还是正则转化的一个逆过程,这是我得看法。
转换的页面包含这个文件,显示的时候就调用这个转换过程:


<%=ubbcode(rs("szd_content").value)%>

把信息的内容转换为期望的格式显示。

有人可能要问,html怎么屏蔽调那?答案是在输出的时候改掉像“>"的标签,浏览器就不会执行了,哈哈哈,经典的改了一个笑脸的ubb,执行结果就是一个笑脸,哈哈哈


Function HTMLEncode(Str)
if not isnull(Str) then
Str = replace(Str, ">", "&gt;")
Str = replace(Str, "<", "&lt;")
Str = Replace(Str, CHR(32), "&nbsp;")
Str = Replace(Str, CHR(9), "&nbsp;")
Str = Replace(Str, CHR(34), "&quot;")
Str = Replace(Str, CHR(39), "&#39;")
Str = Replace(Str, CHR(10) & CHR(10), "</P><P> ")
Str = Replace(Str, CHR(10), "<BR> ")
HTMLEncode = Str
end if
End Function

这是转换html的页面,随便你了,包含到输出页面,调用



<%=LEncode(rs("szd_title").value)%> '//asp学习网:aspxuexi.com//


数据在xml中的的高级排版显示和查询

先定义一个显示整个页面的层标签:


<div class="news"></div>
bgaidu Says: Email Homepage
2009/04/23 20:37
而在页面输入信息的内容写为:

<TABLE>
<TBODY>
<TR>
<TD vAlign=top>
<TABLE class=Tborder border=0 align=center cellPadding=5 cellSpacing=1>
<TBODY>

<TR>
<TD height=2>内 容::</TD>

</TR>
<TR>
<TD> <P><font>
</font></P>
<TD colSpan=2><IMG onclick=Cbold() alt=粗体
src="Images/Ubbpic/bold.gif" border=0><IMG onclick=Citalic() alt=斜体 src="Images/Ubbpic/italicize.gif" border=0><IMG onclick=Cunder() alt=下划线
src="Images/Ubbpic/underline.gif" border=0><IMG
onclick=Ccenter() alt=居中 src="Images/Ubbpic/center.gif" border=0><IMG onclick=Curl() alt=超级连接
src="Images/Ubbpic/url1.gif" border=0><IMG src="Images/Ubbpic/email1.gif" alt=Email连接 width="23" height="22" border=0 onclick=Cemail()><IMG onclick=Cimage() alt=图片 src="Images/Ubbpic/image.gif" border=0><IMG onclick=Cswf() alt=Flash图片
src="Images/Ubbpic/swf.gif" border=0><IMG onclick=Cdir() alt=Shockwave文件 src="Images/Ubbpic/Shockwave.gif"
border=0><IMG onclick=Crm() alt=realplay视频文件
src="Images/Ubbpic/rm.gif" border=0><IMG onclick=Cwmv() alt="Media Player视频文件" src="Images/Ubbpic/mp.gif"
border=0><IMG onclick=Cmov() alt=QuickTime视频文件
src="Images/Ubbpic/qt.gif" border=0><IMG onclick=Cquote() alt=引用 src="Images/Ubbpic/quote1.gif" border=0><IMG
onclick=Cfly() alt=飞行字 src="Images/Ubbpic/fly.gif"
border=0><IMG onclick=Cmarquee() alt=移动字
src="Images/Ubbpic/move.gif" border=0><IMG onclick=Cguang() alt=发光字 src="Images/Ubbpic/glow.gif" border=0><IMG
onclick=Cying() alt=阴影字 src="Images/Ubbpic/shadow.gif" border=0> <BR>
字体:
<SELECT onchange="if(this.options[this.selectedIndex].value!=''){showfont(this.options[this.selectedIndex].value);this.options[0].selected=true;}else {this.selectedIndex=0;}"
name=font>
<OPTION value=宋体 selected>宋体</OPTION>
<OPTION
value=楷体_GB2312>楷体</OPTION>
<OPTION value=新宋体>新宋体</OPTION>
<OPTION
value=黑体>黑体</OPTION>
<OPTION value=隶书>隶书</OPTION>
<OPTION
value="Andale Mono">Andale Mono</OPTION>
<OPTION
value=Arial>Arial</OPTION>
<OPTION value="Arial Black">Arial Black</OPTION>
<OPTION value="Book Antiqua">Book Antiqua</OPTION>
<OPTION value="Century Gothic">Century Gothic</OPTION>
<OPTION
value="Comic Sans MS">Comic Sans MS</OPTION>
<OPTION
value="Courier New">Courier New</OPTION>
<OPTION
value=Georgia>Georgia</OPTION>
<OPTION value=Impact>Impact</OPTION>
<OPTION value=Tahoma>Tahoma</OPTION>
<OPTION
value="Times New Roman">Times New Roman</OPTION>
<OPTION
value="Trebuchet MS">Trebuchet MS</OPTION>
<OPTION
value="Script MT Bold">Script MT Bold</OPTION>
<OPTION
value=Stencil>Stencil</OPTION>
<OPTION value=Verdana>Verdana</OPTION>
<OPTION value="Lucida Console">Lucida Console</OPTION>
</SELECT> &nbsp;&nbsp;&nbsp;&nbsp; 字体大小
<SELECT
onchange="if(this.options[this.selectedIndex].value!=''){showsize(this.options[this.selectedIndex].value);this.options[0].selected=true;}else {this.selectedIndex=0;}"
name=size>
<OPTION value=1>1</OPTION>
<OPTION value=2>2</OPTION>
<OPTION
value=3 selected>3</OPTION>
<OPTION value=4>4</OPTION>
</SELECT> &nbsp;&nbsp;&nbsp;<FONT face=宋体 color=#333333>颜色:</FONT>
<SELECT
onchange="if(this.options[this.selectedIndex].value!=''){showcolor(this.options[this.selectedIndex].value);this.options[0].selected=true;}else {this.selectedIndex=0;}"
name=color>
<OPTION style="COLOR: #f0f8ff; BACKGROUND-COLOR: #f0f8ff"
value=#F0F8FF>#F0F8FF</OPTION>
<OPTION
style="COLOR: #faebd7; BACKGROUND-COLOR: #faebd7"
value=#FAEBD7>#FAEBD7</OPTION>
<OPTION
style="COLOR: #00ffff; BACKGROUND-COLOR: #00ffff"
value=#00FFFF>#00FFFF</OPTION>
<OPTION
style="COLOR: #7fffd4; BACKGROUND-COLOR: #7fffd4"
value=#7FFFD4>#7FFFD4</OPTION>
<OPTION
style="COLOR: #f0ffff; BACKGROUND-COLOR: #f0ffff"
value=#F0FFFF>#F0FFFF</OPTION>
<OPTION
style="COLOR: #f5f5dc; BACKGROUND-COLOR: #f5f5dc"
value=#F5F5DC>#F5F5DC</OPTION>
<OPTION
style="COLOR: #ffe4c4; BACKGROUND-COLOR: #ffe4c4"
value=#FFE4C4>#FFE4C4</OPTION>
<OPTION
style="COLOR: #000000; BACKGROUND-COLOR: #000000"
value=#000000>#000000</OPTION>
<OPTION
style="COLOR: #ffebcd; BACKGROUND-COLOR: #ffebcd"
value=#FFEBCD>#FFEBCD</OPTION>
<OPTION
style="COLOR: #0000ff; BACKGROUND-COLOR: #0000ff"
value=#0000FF>#0000FF</OPTION>
<OPTION
style="COLOR: #8a2be2; BACKGROUND-COLOR: #8a2be2"
value=#8A2BE2>#8A2BE2</OPTION>
<OPTION
style="COLOR: #a52a2a; BACKGROUND-COLOR: #a52a2a"
value=#A52A2A>#A52A2A</OPTION>
<OPTION
style="COLOR: #deb887; BACKGROUND-COLOR: #deb887"
value=#DEB887>#DEB887</OPTION>
<OPTION
style="COLOR: #5f9ea0; BACKGROUND-COLOR: #5f9ea0"
value=#5F9EA0>#5F9EA0</OPTION>
<OPTION
style="COLOR: #7fff00; BACKGROUND-COLOR: #7fff00"
value=#7FFF00>#7FFF00</OPTION>
<OPTION
style="COLOR: #d2691e; BACKGROUND-COLOR: #d2691e"
value=#D2691E>#D2691E</OPTION>
<OPTION
style="COLOR: #ff7f50; BACKGROUND-COLOR: #ff7f50"
value=#FF7F50>#FF7F50</OPTION>
<OPTION
style="COLOR: #6495ed; BACKGROUND-COLOR: #6495ed" value=#6495ED
selected>#6495ED</OPTION>
<OPTION
style="COLOR: #fff8dc; BACKGROUND-COLOR: #fff8dc"
value=#FFF8DC>#FFF8DC</OPTION>
<OPTION
style="COLOR: #dc143c; BACKGROUND-COLOR: #dc143c"
value=#DC143C>#DC143C</OPTION>
<OPTION
style="COLOR: #00ffff; BACKGROUND-COLOR: #00ffff"
value=#00FFFF>#00FFFF</OPTION>
<OPTION
style="COLOR: #00008b; BACKGROUND-COLOR: #00008b"
value=#00008B>#00008B</OPTION>
<OPTION
style="COLOR: #008b8b; BACKGROUND-COLOR: #008b8b"
value=#008B8B>#008B8B</OPTION>
<OPTION
style="COLOR: #b8860b; BACKGROUND-COLOR: #b8860b"
value=#B8860B>#B8860B</OPTION>
<OPTION
style="COLOR: #a9a9a9; BACKGROUND-COLOR: #a9a9a9"
value=#A9A9A9>#A9A9A9</OPTION>
<OPTION
style="COLOR: #006400; BACKGROUND-COLOR: #006400"
value=#006400>#006400</OPTION>
<OPTION
style="COLOR: #bdb76b; BACKGROUND-COLOR: #bdb76b"
value=#BDB76B>#BDB76B</OPTION>
<OPTION
style="COLOR: #8b008b; BACKGROUND-COLOR: #8b008b"
value=#8B008B>#8B008B</OPTION>
<OPTION
style="COLOR: #556b2f; BACKGROUND-COLOR: #556b2f"
value=#556B2F>#556B2F</OPTION>
<OPTION
style="COLOR: #ff8c00; BACKGROUND-COLOR: #ff8c00"
value=#FF8C00>#FF8C00</OPTION>
<OPTION
style="COLOR: #9932cc; BACKGROUND-COLOR: #9932cc"
value=#9932CC>#9932CC</OPTION>
<OPTION
style="COLOR: #8b0000; BACKGROUND-COLOR: #8b0000"
value=#8B0000>#8B0000</OPTION>
<OPTION
style="COLOR: #e9967a; BACKGROUND-COLOR: #e9967a"
value=#E9967A>#E9967A</OPTION>
<OPTION
style="COLOR: #8fbc8f; BACKGROUND-COLOR: #8fbc8f"
value=#8FBC8F>#8FBC8F</OPTION>
<OPTION
style="COLOR: #483d8b; BACKGROUND-COLOR: #483d8b"
value=#483D8B>#483D8B</OPTION>
<OPTION
style="COLOR: #2f4f4f; BACKGROUND-COLOR: #2f4f4f"
value=#2F4F4F>#2F4F4F</OPTION>
<OPTION
style="COLOR: #00ced1; BACKGROUND-COLOR: #00ced1"
value=#00CED1>#00CED1</OPTION>
<OPTION
style="COLOR: #9400d3; BACKGROUND-COLOR: #9400d3"
value=#9400D3>#9400D3</OPTION>
<OPTION
style="COLOR: #ff1493; BACKGROUND-COLOR: #ff1493"
value=#FF1493>#FF1493</OPTION>
<OPTION
style="COLOR: #00bfff; BACKGROUND-COLOR: #00bfff"
value=#00BFFF>#00BFFF</OPTION>
<OPTION
style="COLOR: #696969; BACKGROUND-COLOR: #696969"
value=#696969>#696969</OPTION>
<OPTION
style="COLOR: #1e90ff; BACKGROUND-COLOR: #1e90ff"
value=#1E90FF>#1E90FF</OPTION>
<OPTION
style="COLOR: #b22222; BACKGROUND-COLOR: #b22222"
value=#B22222>#B22222</OPTION>
<OPTION
style="COLOR: #fffaf0; BACKGROUND-COLOR: #fffaf0"
value=#FFFAF0>#FFFAF0</OPTION>
<OPTION
style="COLOR: #228b22; BACKGROUND-COLOR: #228b22"
value=#228B22>#228B22</OPTION>
<OPTION
style="COLOR: #ff00ff; BACKGROUND-COLOR: #ff00ff"
value=#FF00FF>#FF00FF</OPTION>
<OPTION
style="COLOR: #dcdcdc; BACKGROUND-COLOR: #dcdcdc"
value=#DCDCDC>#DCDCDC</OPTION>
<OPTION
style="COLOR: #f8f8ff; BACKGROUND-COLOR: #f8f8ff"
value=#F8F8FF>#F8F8FF</OPTION>
<OPTION
style="COLOR: #ffd700; BACKGROUND-COLOR: #ffd700"
value=#FFD700>#FFD700</OPTION>
<OPTION
style="COLOR: #daa520; BACKGROUND-COLOR: #daa520"
value=#DAA520>#DAA520</OPTION>
<OPTION
style="COLOR: #808080; BACKGROUND-COLOR: #808080"
value=#808080>#808080</OPTION>
<OPTION
style="COLOR: #008000; BACKGROUND-COLOR: #008000"
value=#008000>#008000</OPTION>
<OPTION
style="COLOR: #adff2f; BACKGROUND-COLOR: #adff2f"
value=#ADFF2F>#ADFF2F</OPTION>
<OPTION
style="COLOR: #f0fff0; BACKGROUND-COLOR: #f0fff0"
value=#F0FFF0>#F0FFF0</OPTION>
<OPTION
style="COLOR: #ff69b4; BACKGROUND-COLOR: #ff69b4"
value=#FF69B4>#FF69B4</OPTION>
<OPTION
style="COLOR: #cd5c5c; BACKGROUND-COLOR: #cd5c5c"
value=#CD5C5C>#CD5C5C</OPTION>
<OPTION
style="COLOR: #4b0082; BACKGROUND-COLOR: #4b0082"
value=#4B0082>#4B0082</OPTION>
<OPTION
style="COLOR: #fffff0; BACKGROUND-COLOR: #fffff0"
value=#FFFFF0>#FFFFF0</OPTION>
<OPTION
style="COLOR: #f0e68c; BACKGROUND-COLOR: #f0e68c"
value=#F0E68C>#F0E68C</OPTION>
<OPTION
style="COLOR: #e6e6fa; BACKGROUND-COLOR: #e6e6fa"
value=#E6E6FA>#E6E6FA</OPTION>
<OPTION
style="COLOR: #fff0f5; BACKGROUND-COLOR: #fff0f5"
value=#FFF0F5>#FFF0F5</OPTION>
<OPTION
style="COLOR: #7cfc00; BACKGROUND-COLOR: #7cfc00"
value=#7CFC00>#7CFC00</OPTION>
<OPTION
style="COLOR: #fffacd; BACKGROUND-COLOR: #fffacd"
value=#FFFACD>#FFFACD</OPTION>
<OPTION
style="COLOR: #add8e6; BACKGROUND-COLOR: #add8e6"
value=#ADD8E6>#ADD8E6</OPTION>
<OPTION
style="COLOR: #f08080; BACKGROUND-COLOR: #f08080"
value=#F08080>#F08080</OPTION>
<OPTION
style="COLOR: #e0ffff; BACKGROUND-COLOR: #e0ffff"
value=#E0FFFF>#E0FFFF</OPTION>
<OPTION
style="COLOR: #fafad2; BACKGROUND-COLOR: #fafad2"
value=#FAFAD2>#FAFAD2</OPTION>
<OPTION
style="COLOR: #90ee90; BACKGROUND-COLOR: #90ee90"
value=#90EE90>#90EE90</OPTION>
<OPTION
style="COLOR: #d3d3d3; BACKGROUND-COLOR: #d3d3d3"
value=#D3D3D3>#D3D3D3</OPTION>
<OPTION
style="COLOR: #ffb6c1; BACKGROUND-COLOR: #ffb6c1"
value=#FFB6C1>#FFB6C1</OPTION>
<OPTION
style="COLOR: #ffa07a; BACKGROUND-COLOR: #ffa07a"
value=#FFA07A>#FFA07A</OPTION>
<OPTION
style="COLOR: #20b2aa; BACKGROUND-COLOR: #20b2aa"
value=#20B2AA>#20B2AA</OPTION>
<OPTION
style="COLOR: #87cefa; BACKGROUND-COLOR: #87cefa"
value=#87CEFA>#87CEFA</OPTION>
<OPTION
style="COLOR: #778899; BACKGROUND-COLOR: #778899"
value=#778899>#778899</OPTION>
<OPTION
style="COLOR: #b0c4de; BACKGROUND-COLOR: #b0c4de"
value=#B0C4DE>#B0C4DE</OPTION>
<OPTION
style="COLOR: #ffffe0; BACKGROUND-COLOR: #ffffe0"
value=#FFFFE0>#FFFFE0</OPTION>
<OPTION
style="COLOR: #00ff00; BACKGROUND-COLOR: #00ff00"
value=#00FF00>#00FF00</OPTION>
<OPTION
style="COLOR: #32cd32; BACKGROUND-COLOR: #32cd32"
value=#32CD32>#32CD32</OPTION>
<OPTION
style="COLOR: #faf0e6; BACKGROUND-COLOR: #faf0e6"
value=#FAF0E6>#FAF0E6</OPTION>
<OPTION
style="COLOR: #ff00ff; BACKGROUND-COLOR: #ff00ff"
value=#FF00FF>#FF00FF</OPTION>
<OPTION
style="COLOR: #800000; BACKGROUND-COLOR: #800000"
value=#800000>#800000</OPTION>
<OPTION
style="COLOR: #66cdaa; BACKGROUND-COLOR: #66cdaa"
value=#66CDAA>#66CDAA</OPTION>
<OPTION
style="COLOR: #0000cd; BACKGROUND-COLOR: #0000cd"
value=#0000CD>#0000CD</OPTION>
<OPTION
style="COLOR: #ba55d3; BACKGROUND-COLOR: #ba55d3"
value=#BA55D3>#BA55D3</OPTION>
<OPTION
style="COLOR: #9370db; BACKGROUND-COLOR: #9370db"
value=#9370DB>#9370DB</OPTION>
<OPTION
style="COLOR: #3cb371; BACKGROUND-COLOR: #3cb371"
value=#3CB371>#3CB371</OPTION>
<OPTION
style="COLOR: #7b68ee; BACKGROUND-COLOR: #7b68ee"
value=#7B68EE>#7B68EE</OPTION>
<OPTION
style="COLOR: #00fa9a; BACKGROUND-COLOR: #00fa9a"
value=#00FA9A>#00FA9A</OPTION>
<OPTION
style="COLOR: #48d1cc; BACKGROUND-COLOR: #48d1cc"
value=#48D1CC>#48D1CC</OPTION>
<OPTION
style="COLOR: #c71585; BACKGROUND-COLOR: #c71585"
value=#C71585>#C71585</OPTION>
<OPTION
style="COLOR: #191970; BACKGROUND-COLOR: #191970"
value=#191970>#191970</OPTION>
<OPTION
style="COLOR: #f5fffa; BACKGROUND-COLOR: #f5fffa"
value=#F5FFFA>#F5FFFA</OPTION>
<OPTION
style="COLOR: #ffe4e1; BACKGROUND-COLOR: #ffe4e1"
value=#FFE4E1>#FFE4E1</OPTION>
<OPTION
style="COLOR: #ffe4b5; BACKGROUND-COLOR: #ffe4b5"
value=#FFE4B5>#FFE4B5</OPTION>
<OPTION
style="COLOR: #ffdead; BACKGROUND-COLOR: #ffdead"
value=#FFDEAD>#FFDEAD</OPTION>
<OPTION
style="COLOR: #000080; BACKGROUND-COLOR: #000080"
value=#000080>#000080</OPTION>
<OPTION
style="COLOR: #fdf5e6; BACKGROUND-COLOR: #fdf5e6"
value=#FDF5E6>#FDF5E6</OPTION>
<OPTION
style="COLOR: #808000; BACKGROUND-COLOR: #808000"
value=#808000>#808000</OPTION>
<OPTION
style="COLOR: #6b8e23; BACKGROUND-COLOR: #6b8e23"
value=#6B8E23>#6B8E23</OPTION>
<OPTION
style="COLOR: #ffa500; BACKGROUND-COLOR: #ffa500"
value=#FFA500>#FFA500</OPTION>
<OPTION
style="COLOR: #ff4500; BACKGROUND-COLOR: #ff4500"
value=#FF4500>#FF4500</OPTION>
<OPTION
style="COLOR: #da70d6; BACKGROUND-COLOR: #da70d6"
value=#DA70D6>#DA70D6</OPTION>
<OPTION
style="COLOR: #eee8aa; BACKGROUND-COLOR: #eee8aa"
value=#EEE8AA>#EEE8AA</OPTION>
<OPTION
style="COLOR: #98fb98; BACKGROUND-COLOR: #98fb98"
value=#98FB98>#98FB98</OPTION>
<OPTION
style="COLOR: #afeeee; BACKGROUND-COLOR: #afeeee"
value=#AFEEEE>#AFEEEE</OPTION>
<OPTION
style="COLOR: #db7093; BACKGROUND-COLOR: #db7093"
value=#DB7093>#DB7093</OPTION>
<OPTION
style="COLOR: #ffefd5; BACKGROUND-COLOR: #ffefd5"
value=#FFEFD5>#FFEFD5</OPTION>
<OPTION
style="COLOR: #ffdab9; BACKGROUND-COLOR: #ffdab9"
value=#FFDAB9>#FFDAB9</OPTION>
<OPTION
style="COLOR: #cd853f; BACKGROUND-COLOR: #cd853f"
value=#CD853F>#CD853F</OPTION>
<OPTION
style="COLOR: #ffc0cb; BACKGROUND-COLOR: #ffc0cb"
value=#FFC0CB>#FFC0CB</OPTION>
<OPTION
style="COLOR: #dda0dd; BACKGROUND-COLOR: #dda0dd"
value=#DDA0DD>#DDA0DD</OPTION>
<OPTION
style="COLOR: #b0e0e6; BACKGROUND-COLOR: #b0e0e6"
value=#B0E0E6>#B0E0E6</OPTION>
<OPTION
style="COLOR: #800080; BACKGROUND-COLOR: #800080"
value=#800080>#800080</OPTION>
<OPTION
style="COLOR: #ff0000; BACKGROUND-COLOR: #ff0000"
value=#FF0000>#FF0000</OPTION>
<OPTION
style="COLOR: #bc8f8f; BACKGROUND-COLOR: #bc8f8f"
value=#BC8F8F>#BC8F8F</OPTION>
<OPTION
style="COLOR: #4169e1; BACKGROUND-COLOR: #4169e1"
value=#4169E1>#4169E1</OPTION>
<OPTION
style="COLOR: #8b4513; BACKGROUND-COLOR: #8b4513"
value=#8B4513>#8B4513</OPTION>
<OPTION
style="COLOR: #fa8072; BACKGROUND-COLOR: #fa8072"
value=#FA8072>#FA8072</OPTION>
<OPTION
style="COLOR: #f4a460; BACKGROUND-COLOR: #f4a460"
value=#F4A460>#F4A460</OPTION>
<OPTION
style="COLOR: #2e8b57; BACKGROUND-COLOR: #2e8b57"
value=#2E8B57>#2E8B57</OPTION>
<OPTION
style="COLOR: #fff5ee; BACKGROUND-COLOR: #fff5ee"
value=#FFF5EE>#FFF5EE</OPTION>
<OPTION
style="COLOR: #a0522d; BACKGROUND-COLOR: #a0522d"
value=#A0522D>#A0522D</OPTION>
<OPTION
style="COLOR: #c0c0c0; BACKGROUND-COLOR: #c0c0c0"
value=#C0C0C0>#C0C0C0</OPTION>
<OPTION
style="COLOR: #87ceeb; BACKGROUND-COLOR: #87ceeb"
value=#87CEEB>#87CEEB</OPTION>
<OPTION
style="COLOR: #6a5acd; BACKGROUND-COLOR: #6a5acd"
value=#6A5ACD>#6A5ACD</OPTION>
<OPTION
style="COLOR: #708090; BACKGROUND-COLOR: #708090"
value=#708090>#708090</OPTION>
<OPTION
style="COLOR: #fffafa; BACKGROUND-COLOR: #fffafa"
value=#FFFAFA>#FFFAFA</OPTION>
<OPTION
style="COLOR: #00ff7f; BACKGROUND-COLOR: #00ff7f"
value=#00FF7F>#00FF7F</OPTION>
<OPTION
style="COLOR: #4682b4; BACKGROUND-COLOR: #4682b4"
value=#4682B4>#4682B4</OPTION>
<OPTION
style="COLOR: #d2b48c; BACKGROUND-COLOR: #d2b48c"
value=#D2B48C>#D2B48C</OPTION>
<OPTION
style="COLOR: #008080; BACKGROUND-COLOR: #008080"
value=#008080>#008080</OPTION>
<OPTION
style="COLOR: #d8bfd8; BACKGROUND-COLOR: #d8bfd8"
value=#D8BFD8>#D8BFD8</OPTION>
<OPTION
style="COLOR: #ff6347; BACKGROUND-COLOR: #ff6347"
value=#FF6347>#FF6347</OPTION>
<OPTION
style="COLOR: #40e0d0; BACKGROUND-COLOR: #40e0d0"
value=#40E0D0>#40E0D0</OPTION>
<OPTION
style="COLOR: #ee82ee; BACKGROUND-COLOR: #ee82ee"
value=#EE82EE>#EE82EE</OPTION>
<OPTION
style="COLOR: #f5deb3; BACKGROUND-COLOR: #f5deb3"
value=#F5DEB3>#F5DEB3</OPTION>
<OPTION
style="COLOR: #ffffff; BACKGROUND-COLOR: #ffffff"
value=#FFFFFF>#FFFFFF</OPTION>
<OPTION
style="COLOR: #f5f5f5; BACKGROUND-COLOR: #f5f5f5"
value=#F5F5F5>#F5F5F5</OPTION>
<OPTION
style="COLOR: #ffff00; BACKGROUND-COLOR: #ffff00"
value=#FFFF00>#FFFF00</OPTION>
<OPTION
style="COLOR: #9acd32; BACKGROUND-COLOR: #9acd32"
value=#9ACD32>#9ACD32</OPTION>
</SELECT> </TD>
</TR>
<TR>
<TD vAlign=top><IMG style="CURSOR: hand"
onclick="insertsmilie('[em02]')" src="Images/Ubbpic/em02.gif"
border=0> <IMG style="CURSOR: hand" onclick="insertsmilie('[em03]')"
src="Images/Ubbpic/em03.gif" border=0> <IMG style="CURSOR: hand"
onclick="insertsmilie('[em04]')" src="Images/Ubbpic/em04.gif"
border=0> <IMG style="CURSOR: hand" onclick="insertsmilie('[em05]')"
src="Images/Ubbpic/em05.gif" border=0> <img style="CURSOR: hand"
onClick="insertsmilie('[em06]')" src="Images/Ubbpic/em06.gif"
border=0> <IMG style="CURSOR: hand" onclick="insertsmilie('[em07]')"
src="Images/Ubbpic/em07.gif" border=0> <IMG style="CURSOR: hand"
onclick="insertsmilie('[em08]')" src="Images/Ubbpic/em08.gif"
border=0> <IMG
src="Images/Ubbpic/em09.gif" width="20" height="20" border=0 style="CURSOR: hand" onclick="insertsmilie('[em09]')">
<IMG style="CURSOR: hand"
onclick="insertsmilie('[em10]')" src="Images/Ubbpic/em10.gif"
border=0> <IMG style="CURSOR: hand" onclick="insertsmilie('[em11]')"
src="Images/Ubbpic/em11.gif" border=0> <IMG style="CURSOR: hand"
onclick="insertsmilie('[em12]')" src="Images/Ubbpic/em12.gif"
border=0> <IMG style="CURSOR: hand" onclick="insertsmilie('[em13]')"
src="Images/Ubbpic/em13.gif" border=0> <IMG style="CURSOR: hand"
onclick="insertsmilie('[em14]')" src="Images/Ubbpic/em14.gif"
border=0> <IMG style="CURSOR: hand" onclick="insertsmilie('[em15]')"
src="Images/Ubbpic/em15.gif" border=0> <IMG style="CURSOR: hand"
onclick="insertsmilie('[em16]')" src="Images/Ubbpic/em16.gif"
border=0> <IMG style="CURSOR: hand" onclick="insertsmilie('[em17]')"
src="Images/Ubbpic/em17.gif" border=0> <IMG style="CURSOR: hand"
onclick="insertsmilie('[em18]')" src="Images/Ubbpic/em18.gif"
border=0> <IMG style="CURSOR: hand" onclick="insertsmilie('[em19]')"
src="Images/Ubbpic/em19.gif" border=0> <IMG style="CURSOR: hand"
onclick="insertsmilie('[em20]')" src="Images/Ubbpic/em20.gif"
border=0> <IMG style="CURSOR: hand" onclick="insertsmilie('[em21]')"
src="Images/Ubbpic/em21.gif" border=0> <IMG style="CURSOR: hand" onclick="insertsmilie('[em23]')"
src="Images/Ubbpic/em23.gif" border=0> <IMG style="CURSOR: hand"
onclick="insertsmilie('[em24]')" src="Images/Ubbpic/em24.gif"
border=0> <IMG style="CURSOR: hand" onclick="insertsmilie('[em25]')"
src="Images/Ubbpic/em25.gif" border=0> <IMG style="CURSOR: hand" onclick="insertsmilie('[em27]')"
src="Images/Ubbpic/em27.gif" border=0> <IMG style="CURSOR: hand"
onclick="insertsmilie('[em28]')" src="Images/Ubbpic/em28.gif"
border=0> <IMG style="CURSOR: hand"
onclick="insertsmilie('[em29]')" src="Images/Ubbpic/em29.gif"
border=0> <IMG style="CURSOR: hand"
onclick="insertsmilie('[em30]')" src="Images/Ubbpic/em30.gif"
border=0> <IMG style="CURSOR: hand"
onclick="insertsmilie('[em31]')" src="Images/Ubbpic/em31.gif"
border=0> <IMG
src="Images/Ubbpic/em32.gif" width="19" height="19" border=0 style="CURSOR: hand" onclick="insertsmilie('[em27]')">
<IMG src="Images/Ubbpic/em33.gif" width="19" height="19"
border=0 style="CURSOR: hand"
onclick="insertsmilie('[em28]')"> <IMG src="Images/Ubbpic/em34.gif" width="19" height="19"
border=0 style="CURSOR: hand"
onclick="insertsmilie('[em29]')"> <IMG src="Images/Ubbpic/em35.gif" width="19" height="19"
border=0 style="CURSOR: hand"
onclick="insertsmilie('[em30]')"> <IMG src="Images/Ubbpic/em36.gif" width="19" height="19"
border=0 style="CURSOR: hand"
onclick="insertsmilie('[em31]')"> <IMG
src="Images/Ubbpic/em37.gif" width="19" height="19" border=0 style="CURSOR: hand" onclick="insertsmilie('[em27]')">
<IMG src="Images/Ubbpic/em38.gif" width="19" height="19"
border=0 style="CURSOR: hand"
onclick="insertsmilie('[em28]')"> <IMG src="Images/Ubbpic/em39.gif" width="19" height="19"
border=0 style="CURSOR: hand"
onclick="insertsmilie('[em29]')"> <IMG src="Images/Ubbpic/em41.gif" width="19" height="19"
border=0 style="CURSOR: hand"
onclick="insertsmilie('[em31]')"> <IMG
src="Images/Ubbpic/em42.gif" width="19" height="19" border=0 style="CURSOR: hand" onclick="insertsmilie('[em27]')">
<IMG src="Images/Ubbpic/em43.gif" width="19" height="19"
border=0 style="CURSOR: hand"
onclick="insertsmilie('[em28]')"> <IMG src="Images/Ubbpic/em44.gif" width="19" height="19"
border=0 style="CURSOR: hand"
onclick="insertsmilie('[em29]')"> <IMG src="Images/Ubbpic/em45.gif" width="19" height="19"
border=0 style="CURSOR: hand"
onclick="insertsmilie('[em30]')"> <IMG src="Images/Ubbpic/em46.gif" width="19" height="19"
border=0 style="CURSOR: hand"
onclick="insertsmilie('[em31]')"> <IMG
src="Images/Ubbpic/em47.gif" width="19" height="19" border=0 style="CURSOR: hand" onclick="insertsmilie('[em27]')">
<IMG src="Images/Ubbpic/em48.gif" width="19" height="19"
border=0 style="CURSOR: hand"
onclick="insertsmilie('[em28]')"> <IMG src="Images/Ubbpic/em49.gif" width="19" height="19"
border=0 style="CURSOR: hand"
onclick="insertsmilie('[em29]')">
<TD colSpan=2><textarea name=Content cols=70 rows=14 id="Content" title=可以使用Ctrl+Enter直接提交贴子 onKeyDown=ctlent()></TEXTAREA></TD>
</TR>
</TBODY>
</TABLE>

</TD>
</TR>
</TBODY>
</TABLE>
<table border=0 align="center" cellpadding=0 cellspacing=0>
<tbody>
<tr>
<td width=618 height=25><div align="center"><br>
<input Style="background-color:#FFFFFF; " type=submit value= OK!发表(或是按Ctrl+Enter) name=Submit>
&nbsp;&nbsp;&nbsp;&nbsp;
<INPUT Style="background-color:#FFFFFF; " type=reset value=" 重新填写内容 " name=Submit2>
<br>
<br>
</div></td>
</tr>
</tbody>
</table>
分页: 1/3 第一页 1 2 3 下页 最后页
发表评论
  • 昵称 [注册]
  • 密码 游客无需密码
  • 网址
  • 电邮
打开HTML 打开UBB 打开表情 隐藏 记住我