关于“简单的ASP统计制作实例”的完整攻略,以下是我总结出的步骤及说明:
步骤1:建立数据库
首先,在网站目录下,使用SQL Server Management Studio或者其他的工具,建立一个名为“test”的新数据库,并加入一张名为“guestbook”的新表。表中需要包含以下字段:
- ID:自动增长的主键;
- time:用于记录短信发布时间的时间戳;
- subject:访客短信的主题;
- body:访客短信的正文;
- name:访客姓名;
- email:访客邮箱。
步骤2:创建ASP页面
接下来,在网站目录下,新建一个名为“guestbook.asp”的新页面,并使用以下代码进行编辑:
<%@LANGUAGE="VBSCRIPT"%>
<!--#include file="connect.asp"-->
<html>
<head>
<title>留言板</title>
<meta charset="utf-8">
<link rel="stylesheet" href="style.css">
</head>
<body>
<h1>留言板</h1>
<form method="post" action="add.asp">
<p>主题:<input name="subject"></p>
<p>正文:<textarea name="body"></textarea></p>
<p>姓名:<input name="name"></p>
<p>电邮:<input name="email"></p>
<p><input type="submit" value="提交"></p>
</form>
<h2>留言列表</h2>
<table>
<tr>
<th>时间</th>
<th>主题</th>
<th>姓名</th>
<th>电邮</th>
</tr>
<%
Dim conn, rs
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open "Provider=SQLOLEDB;Data source=.\SQLEXPRESS;Initial Catalog=test;Integrated Security=True"
Set rs = conn.Execute("SELECT * FROM guestbook")
Do Until rs.EOF
Response.Write("<tr>")
Response.Write("<td>" + rs("time") + "</td>")
Response.Write("<td>" + rs("subject") + "</td>")
Response.Write("<td>" + rs("name") + "</td>")
Response.Write("<td>" + rs("email") + "</td>")
Response.Write("</tr>")
rs.MoveNext
Loop
Set rs = Nothing
Set conn = Nothing
%>
</table>
</body>
</html>
在代码中,我们使用了以下几个ASP的特性:
- 使用了connect.asp文件来建立数据库连接,可以通过文件包含的方式添加到guestbook.asp页面中;
- 在表单中使用了POST请求的方式提交数据到add.asp页面进行数据处理;
- 使用了ADODB的COM组件连接到SQL Server数据库,并执行SELECT语句读取guestbook表中的数据;
- 使用了Response对象中的Write方法来输出HTML代码,实现了动态的留言列表展示。
步骤3:创建ASP页面对应的数据处理页面
接下来,在网站目录下,新建一个名为“add.asp”的新页面,并使用以下代码进行编辑:
<%@LANGUAGE="VBSCRIPT"%>
<!--#include file="connect.asp"-->
<%
Dim conn, cmd, subject, body, name, email, time
time = Now()
subject = Request.Form("subject")
body = Request.Form("body")
name = Request.Form("name")
email = Request.Form("email")
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open "Provider=SQLOLEDB;Data source=.\SQLEXPRESS;Initial Catalog=test;Integrated Security=True"
Set cmd = Server.CreateObject("ADODB.Command")
Set cmd.ActiveConnection = conn
cmd.CommandText = "INSERT INTO guestbook (time, subject, body, name, email) VALUES (?,?,?,?,?)"
cmd.Parameters.Append cmd.CreateParameter("@time", adDate, adParamInput, , time)
cmd.Parameters.Append cmd.CreateParameter("@subject", adVarChar, adParamInput, 50, subject)
cmd.Parameters.Append cmd.CreateParameter("@body", adVarChar, adParamInput, 500, body)
cmd.Parameters.Append cmd.CreateParameter("@name", adVarChar, adParamInput, 50, name)
cmd.Parameters.Append cmd.CreateParameter("@email", adVarChar, adParamInput, 50, email)
cmd.execute
Set cmd = Nothing
Set conn = Nothing
Response.Redirect("guestbook.asp")
%>
在这个页面中,我们使用了以下几个ASP的特性:
- 使用了connect.asp文件建立数据库连接;
- 通过Request对象获取了上一个页面中通过POST请求传递过来的数据;
- 使用了ADODB的COM组件连接到SQL Server数据库,并执行INSERT语句将接收到的数据存入guestbook表中;
- 使用了Response对象中的Redirect方法跳转回上一个页面,实现了数据提交后的页面跳转功能。
示例1:增加数据的时候,同时记录下对应的IP地址
在步骤3的add.asp页面中,我们可以通过Request对象的ServerVariables属性获取到一些有用的HTTP请求信息,例如客户端请求的IP地址。我们可以在插入数据的时候,同时把这个客户端请求的IP地址也存入数据库内,代码如下:
<%
Dim conn, cmd, subject, body, name, email, time, ip
time = Now()
subject = Request.Form("subject")
body = Request.Form("body")
name = Request.Form("name")
email = Request.Form("email")
ip = Request.ServerVariables("REMOTE_ADDR")
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open "Provider=SQLOLEDB;Data source=.\SQLEXPRESS;Initial Catalog=test;Integrated Security=True"
Set cmd = Server.CreateObject("ADODB.Command")
Set cmd.ActiveConnection = conn
cmd.CommandText = "INSERT INTO guestbook (time, subject, body, name, email, ip) VALUES (?,?,?,?,?,?)"
cmd.Parameters.Append cmd.CreateParameter("@time", adDate, adParamInput, , time)
cmd.Parameters.Append cmd.CreateParameter("@subject", adVarChar, adParamInput, 50, subject)
cmd.Parameters.Append cmd.CreateParameter("@body", adVarChar, adParamInput, 500, body)
cmd.Parameters.Append cmd.CreateParameter("@name", adVarChar, adParamInput, 50, name)
cmd.Parameters.Append cmd.CreateParameter("@email", adVarChar, adParamInput, 50, email)
cmd.Parameters.Append cmd.CreateParameter("@ip", adVarChar, adParamInput, 50, ip)
cmd.execute
Set cmd = Nothing
Set conn = Nothing
Response.Redirect("guestbook.asp")
%>
这个代码中,我们增加了一个新的ip字段,同时在参数中增加了一个对应的参数。
示例2:增加数据的时候,使用Ajax异步提交
如果我们希望提交数据的时候不刷新页面,而是使用Ajax的方式进行异步提交,可以在guestbook的表单中增加一个id属性,用来标识这个表单,然后使用JavaScript监听这个表单的提交事件,然后发送Ajax请求,最后通过JavaScript控制HTML元素的更新。代码如下:
<form id="guestbook-form">
<p>主题:<input name="subject"></p>
<p>正文:<textarea name="body"></textarea></p>
<p>姓名:<input name="name"></p>
<p>电邮:<input name="email"></p>
<p><input type="submit" value="提交"></p>
</form>
<div id="guestbooks">
...
</div>
<script>
var form = document.getElementById('guestbook-form');
form.addEventListener('submit', function(event) {
event.preventDefault();
var xhr = new XMLHttpRequest();
xhr.open('POST', 'add.asp');
xhr.onload = function() {
if (xhr.status === 200) {
var guestbooks = document.getElementById('guestbooks');
guestbooks.innerHTML = xhr.responseText;
}
};
xhr.send(new FormData(form));
});
</script>
在这个代码中,我们使用了以下技术:
- 在表单中增加了id属性,便于JavaScript进行DOM操作;
- 在表单的submit事件中,使用XMLHttpRequest对象创建了一个异步POST请求,将表单中的数据发送到add.asp页面中进行处理;
- 在异步请求的onload事件中,通过控制HTML元素的innerHTML属性,实现了动态更新留言列表的功能。
综上,以上就是“简单的ASP统计制作实例”的完整攻略及示例说明。它包含了从建立数据库到实现留言板的完整步骤,以及两条示例说明。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:简单的ASP统计制作实例 - Python技术站