用ASP与XML编写留言板
随着网络的普及,越来越多的网站增设了各种实时交互功能,如网上调查、时事论坛、聊天室、留言板等。下面介绍使用ASP编写留言板程序的实例,使你轻松拥有自己的留言板。
guestbook.htm
<html>
<head><title>留言板</title></head>
<body>
<center><h2>请留下您的建议</h2>
<Form method ="post" action ="Guestbook.asp">
您的名字:<input type =text name="Name" size=33><br>
您的Email:<input type =text name="email" size=32><br>
主题:<input TYPE="TEXT" NAME="Subject" SIZE="36"><br>
留言内容: <br><textarea name ="Memo" COLS=60 ROWS=10></textarea><p>
<input TYPE="Submit" NAME="SEND" VALUE="提交留言">
<input TYPE="RESET" VALUE="清除重写">
<p>
<a HREF="view.asp">浏览留言</a>
</form></center>
</body>
</html>
Guestbook.asp 添加留言
<%@ language="vbscript"%>
<%
' 读取各输入框的数据
Name = Request("Name")
Email = Request("Email")
Subject = Request("Subject")
Memo = Request("Memo")
' 检查各输入框是否输入有数据
If Name = "" Or Memo = "" Then
Response.Write "输入框不能为空白!"
Response.End '不再处理以下的程序
End If
t=Now() '时 间
'建立XMLOM对象
set xmldoc=server.createObject("MSXML.DOMDocument")
xmldoc.load(Server.MapPath("guest.xml"))
'如果此文档不存在在新建一个文档
If xmldoc.parseError.ErrorCode <> 0 Then
xmldoc.loadXML "<?xml version=""1.0"" encoding=""gb2312"" ?><留言集></留言集>"
End If
'判断文档是否加载成功
if xmldoc.readystate=4 and xmldoc.parseError.errorCode=0 then
'添加元素
'选择根节点
Set objRootlist = xmldoc.selectSingleNode("留言集")
'添加根节点的子节点
Set oListNode = objRootlist.AppendChild(xmldoc.createElement("留言"))
'为学生节点添加内容
Set oDetailsNode = oListNode.appendChild(xmldoc.createElement("姓名"))
oDetailsNode.Text = Name
Set oDetailsNode = oListNode.appendChild(xmldoc.createElement("Email"))
oDetailsNode.Text = Email
Set oDetailsNode = oListNode.appendChild(xmldoc.createElement("主题"))
oDetailsNode.Text = Subject
Set oDetailsNode = oListNode.appendChild(xmldoc.createElement("内容"))
oDetailsNode.Text = Memo
Set oDetailsNode = oListNode.appendChild(xmldoc.createElement("时间"))
oDetailsNode.Text = t
Response.write("成功保存")
else
Response.write("错误原因:"+xmldoc.parseError.reason)
End if
'保存修改
xmldoc.save(Server.MapPath("guest.xml"))
Set xmldoc=nothing
%>
view.asp
<%@ language="vbscript"%>
<%
'建立XMLCOM对象
set xmldoc=server.createObject("MSXML.DOMDocument")
xmldoc.load(Server.MapPath("guest.xml"))
'判断文档是否加载成功
if xmldoc.readystate=4 and xmldoc.parseError.errorCode=0 then
'选择根节点
Set objRootlist = xmldoc.selectSingleNode("留言集")
'先是所有的子节点
for i=0 to objRootlist.ChildNodes.length-1
set a=objRootlist.ChildNodes(i) '留言节点
for j=0 to a.ChildNodes.length-1
response.write(a.ChildNodes(j).nodeName)
response.write(":"+a.ChildNodes(j).text)
response.write("<br>")
next
next
end if
Set xmldoc=nothing
%>