当前位置: 首页 > 图文教程 > 网络编程 > ASP > 用ASP设计一个留言薄

ASP
asp实现取得数组中的最大值的代码
asp 将日期格式化为需要的格式
asp 下产生任意位数随机密码的代码
asp下返回以千分位显示数字格式化的数值
asp重定向页面的方法总结
asp下去除数组中重复的项的方法
asp下实现 重新排序数字数组的代码
asp 验证输入网址是否有效并可以访问 与正则验证输入网址
asp验证Ip格式的函数
asp实现生成由数字,大写字母,小写字母指定位数的随机数
asp 格式化sql中的like字符串
asp 实现显示所有的服务器变量值的函数
asp 取得用户真实IP,对代理地址仍然有效的函数
asp 通用数据库连接过程函数
asp 字符串截取函数
asp下实现格式化文件大小以MB显示的函数
asp 下用正则表达式检测邮箱格式的函数
asp 实现检测字符串是否为纯字母和数字组合的函数
asp代码实现检测组件是否安装的函数
asp通过JMAIL实现通用发送函数

用ASP设计一个留言薄


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-23   浏览: 102 ::
收藏到网摘: n/a

首先,我们在做留言薄之前,先做出一个输入屏的界面效果,也就是生成留言部输入屏幕的htmL页,然后在这些htmL源代码中加入ASP脚本,我这里得到的htmL代码如下。

*文件名:book.htm

以下为引用的内容:
<html>
<head>
 <title>留言薄</title>

</head>

<body bgcolor="#BED9FC" background="images/bg.gif">


<p align="center"><img src="images/gbook.gif" alt="GBook.gif (12142 bytes)" WIDTH="374"
HEIGHT="83"> </p>

<p align="center">[<a href="disp.asp">我要看留言板</a>]  [<a href="../index.asp">返回首页</a>]</p>

<form method="POST" action="book.asp">
<input type="hidden" name="task" value="insert"><div align="left"><table>
<tr>
<td align="right">姓名</td>
<td><img src="images/bottom-b.gif" alt="BUTTOM-B.GIF (179 bytes)" WIDTH="16" HEIGHT="16"></td>
<td><input name="name" size="46"></td>
</tr>
<tr>
<td align="right">性别</td>
<td><img src="images/bottom-g.gif" alt="BUTTOM-G.GIF (179 bytes)" WIDTH="16" HEIGHT="16"></td>
<td><input name="sex" size="46"></td>
</tr>
<tr>
<td align="right">来自</td>
<td><img src="images/bottom-b.gif" alt="BUTTOM-B.GIF (179 bytes)" WIDTH="16" HEIGHT="16"></td>
<td><input name="from" size="46"></td>
</tr>
<tr>
<td align="right">主页URL</td>
<td><img src="images/homepage.gif" alt="HomePage.gif (1232 bytes)" WIDTH="30" HEIGHT="30"></td>
<td><input name="url" size="46"></td>
</tr>
<tr>
<td align="right">      
         
     
E-mail</td>
<td><img src="images/email.gif" alt="Email.gif (1197 bytes)" WIDTH="30" HEIGHT="30"></td>
<td><input name="email" size="46"></td>
</tr>
<tr>
<td align="right">留言</td>
<td colspan="2"><textarea wrap="off" name="comments" cols="49" rows="9"></textarea></td>
</tr>
<tr>
<td>     </td>
<td colspan="2"><dl>
<dd align="center">     <input type="submit" value="我写好了">
      <input type="reset" value="重新再写"></dd>
</dl>
</td>
</tr>
</table>
</div>
</form>

<p align="center"> </p>
</body>
</html>

您可以按这里看一下这个界面的效果(需要强调一点,这些htmL代码还是完全没有功能的)你可以把它保存为book.htm,然后用FRONTPAGE98来打开它,打开后,可以查看网页中的那个输入FORM的属性,在这个留言薄中。我们使用两个文件来处理,一个是book.asp,另一个是disp.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文件内容。
%>
<html>

<head>
<title>留言薄</title>
<% colorbg="#BED9FC" %>
</head>

<body bgcolor="<% =colorbg %>" background="images/bg.gif">


<p align="center"><img src="images/gbook.gif" alt="GBook.gif (12142 bytes)" WIDTH="374"
HEIGHT="83"> </p>

<p align="center">[<a href="disp.asp">我要看留言板</a>]  [<a href="../index.asp">返回首页</a>]</p>

<form method="POST" action="book.asp">
<input type="hidden" name="task" value="insert"><div align="left"><table>
<tr>
<td align="right">姓名</td>
<td><img src="images/bottom-b.gif" alt="BUTTOM-B.GIF (179 bytes)" WIDTH="16" HEIGHT="16"></td>
<td><input name="name" size="46"></td>
</tr>
<tr>
<td align="right">性别</td>
<td><img src="images/bottom-g.gif" alt="BUTTOM-G.GIF (179 bytes)" WIDTH="16" HEIGHT="16"></td>
<td><input name="sex" size="46"></td>
</tr>
<tr>
<td align="right">来自</td>
<td><img src="images/bottom-b.gif" alt="BUTTOM-B.GIF (179 bytes)" WIDTH="16" HEIGHT="16"></td>
<td><input name="from" size="46"></td>
</tr>
<tr>
<td align="right">主页URL</td>
<td><img src="images/homepage.gif" alt="HomePage.gif (1232 bytes)" WIDTH="30" HEIGHT="30"></td>
<td><input name="url" size="46"></td>
</tr>
<tr>
<td align="right">      
         
     
E-mail</td>
<td><img src="images/email.gif" alt="Email.gif (1197 bytes)" WIDTH="30" HEIGHT="30"></td>
<td><input name="email" size="46"></td>
</tr>
<tr>
<td align="right">留言</td>
<td colspan="2"><textarea wrap="off" name="comments" cols="49" rows="9"></textarea></td>
</tr>
<tr>
<td>     </td>
<td colspan="2"><dl>
<dd align="center">     <input type="submit" value="我写好了">
      <input type="reset" value="重新再写"></dd>
</dl>
</td>
</tr>
</table>
</div>
</form>

<p align="center"> </p>
</body>
</html>
<%
end if
%>

现在到disp.asp这个文件,这个文件主要完成从book.txt中提取文件内容,然后重新生成htmL代码以显示出留言内容。

代码如下:

以下为引用的内容:
<% @language="vbscript" %>

<html>

<head>
<title>留言薄</title>
</head>

<body background="images/back.gif">

<p align="center"><img src="images/gbook.gif" alt="gbook.gif (12142 bytes)" WIDTH="374" HEIGHT="83"><%
‘打开数据文件

set fsFilesys=CreateObject("Scripting.FileSystemObject")
set myText=fsFilesys.OpenTextFile(Server.MapPath("/")&"/realchat/book/book.txt")
Tname=myText.ReadLine
%> </p>

<p align="center">[<font color="#00FFFF" size="4"><a href="book.asp">我要写留言</a></font>][<font color="#00FFFF"><a href="../index.asp">返回首页</a></font>]</p>

<table width="600">
<%
do while Tname<>"Line1"
‘逐行读出内容(Line1)是文件结束标志

Tsex=myText.ReadLine
Temail=myText.ReadLine
Turl=myText.ReadLine
Tfrom=myText.ReadLine
%>
<tr>
<td><hr>
</td>
</tr>
<tr>
‘<%=表达式%>是向客户端输出结果

<th colspan="2" align="left">姓   名:<% =Tname %><br>
性   别:<% =Tsex %><br>
E—mail:<a href="mailto:<% =Temail %>"><% =Temail %></a><br>
主页URL:<a href="<% =Turl %>" target="_blank"><% =turl %></a><br>
来   自:<% =Tfrom %></th>
</tr>
<tr>
<th align="left" bgcolor="<% =colorbg %>"><font color="red">留   言:</font></th>
<th align="left" bgcolor="<% =colorbg %>"><%
Tcomments=myText.ReadLine
do while InStr(Tcomments,"#&@")=0
%>
<% =Tcomments %>
<br>
<%
Tcomments=myText.ReadLine
loop
Ttime=Mid(Tcomments,4)
Tdate=myText.ReadLine
%> </th>
</tr>
<tr>
<th colspan="2" align="left">时   间:<% =Ttime %> <br>
日   期:<% =Tdate %></th>
</tr>
<tr>
<td><br>
<%
tname=myText.ReadLine
loop
myText.Close
%> </td>
</tr>
</table>

<p><br>
<br>
</p>
</body>
</html>

好了,仔细地把源文件DOWN下去,自己不断修改,不断测试一下,这样对学习很有好处,看看book.txt的内容。

*book.txt的内容,里面有一条留言

小Hu

[email protected]
http://realplay.163.net
佛山
热烈兴祝“泰信心动聊天室虚拟社区”进入测试使用阶断,衷心感谢些您的到来,在测试过程中有什么问题或好的建议,请告诉我。
yesky诚邀您的加盟参与!
webmaster

wak@21:51:15
99-7-13
Line1

这个留言本很简单,但我觉得很有亲切感,比那些比较“现代化”的比如说心动留言薄这类的风格,朴素得多。