用ASP设计一个留言薄(下)
现在说说book.htm,让大家了解一下其中的那个输入FORM的作用,它的action对象是本身,book.asp(等一会儿需要把book.htm改名为book.asp)这个文件,也就是说。表单提交后,由本身来作处理。在这个FORM中,有几个文本输入框,它们分别是name,sex,from,url,email,以及多行文本输入框comments。
现在把book.htm改名为book.asp,往文件中添加ASP代码。如下:(单引号表示ASP的注析,编译器是不处理的。
*book.asp
<% @language="vbscript" %>
<%
‘'判断请求方式,当客户端请求文件时,比如直接输入网址:http://active.silversand.net/index.htm这样,就会产生一个GET的请求信息。而提交表单时(表单的方式设为POST),就会产生POST的请求方式,现在判断book.asp这个文件是用户用浏览器打开页面,还是用户提交数据这个动作,以便进行程序处理。
if Request.ServerVariables("REQUEST_METHOD")="POST" then
‘这里判断出是由用户提交表单而调入入的页面,因此进行登记留言处理。
‘创建一个文件组件的服务器实例
set fsFilesys=CreateObject("Scripting.FileSystemObject")
‘打开文本文件server.mappath("/")是返回服务器发行目录的真实路径,也就是比如说:c:\Inetpub\wwwroot这个路径,然后"/realchat/book/book.txt"就是相对于这个路径基础上的路径。
set myText=fsFilesys.OpenTextFile(Server.MapPath("/")&"/realchat/book/book.txt")
‘把文本文件的所有内容读出,保存在Temp这个变量中。
Temp=myText.Readall
myText.Close
‘是否需要添加内容
if Request("task")="insert" Then
‘取得表单的各项的值
Tname=request.form("name")
Tsex=request.form("sex")
Temail=request.form("email")
turl=request.form("url")
Tfrom=request.form("from")
Tcomments=request.form("comments")
Ttime="#&@"&time
if Len(Tcomments)<2 Then
%>
<font size="4" color="red">
<p align="center">对不起!你还未留言。<a href="book.asp">返回</a></font> <%
else
if Lcase(Left(Turl,7))<>"http://" Then
Turl="http://"&Turl
End if
Turl=Lcase(Turl)
‘重新创建数据文件,把原来的覆盖掉。
set myText=fsFilesys.CreateTextFile(Server.MapPath("/")&"/realchat/book/book.txt")
myText.WriteLine(Tname)
myText.WriteLine(Tsex)
myText.WriteLine(Temail)
myText.WriteLine(Turl)
myText.WriteLine(Tfrom)
myText.WriteLine(Tcomments)
myText.writeLine(Ttime)
myText.WriteLine(date)
myText.writeLine(Temp)
myText.Close
%>
<script Language="JavaScript">
document.write("<h1>恭喜!您的留言已顺利提交,请按<a href='disp.asp'>这里</a>查看")
</script>
<%
end if
‘至此,留言已保存入文件book.txt中
End if
else
‘第一次进入输入屏幕,因此显示htmL文件内容。
%>