因 因为有朋问我留言系统怎么来做,其实太简单啦,不过为了给大家说清楚还是决定做一个教程来说明如何制作,因为时间的问题,只能略详细的给大家把Code编出来,大家先自己看,不明白的给我QQ留言!
其实在做一个项目的时候,不管项目的大小都要先对项目进行业务的简单分析,然后通过业务的需求实例化出我们的数据库结构. 我们做的是一个留言系统,为啦能让大家更好的理解和掌握,所以我尽量以实例来说!
首先我们要设计出我们的数据库,根据业务需求,我们这个留言系统最大在线人数一般在20人以内,按照这个并发量我们就直接选择Microsoft 的ACCESS做为我们的数据库产品! 而不去选择SQL server or Mysql啦!
我们要建立两张表分别是 Admin(用来存储管理员的相关信息) Message(用来存储留言者的信息及其留言内容和回复内容)
Admin表中有---Id,Username,Password 三个字段
Message表中有 m_id,m_name,m_qq,m_email,m_content,m_attrib.m_time七个字段.
设计完数据库后,我们就要使用HTML来布局出我们留言系统的雏形来,在使用CSS来美化修饰页面布局;设计草图如下:(仅仅是草图,所以大家在做的时候一定要用心做,相信大家一定比我做的好,我只是为了实现教程,所以有些简略)
下来我们来分析下我们的留言系统有几个主要页面组成:
index.asp(留言系统首页)
功能:
1.默认的留言及其浏览页面(还有一个附加的首页Default.asp,和index.asp页面一样只是为了不同的请求处理.
Default.asp页面编码(<%response.redirect "index.asp"%>)就这一句实现跳转到index,asp页面
insert.asp(首页留言信息的后台处理页面)
功能:
1.实现首页信息写入数据库中.
admin.asp(管理员管理页面)
功能:
1.实现留言的管理的相关事项.如删除留言,回复留言等.
2.留言系统的相关设置,如,动态改变版权,标题,每页要显示的留言条数.
conn.asp(数据库连接处理页面)
功能:
1.实现程序同数据库的访问,通过server对象来创建一个object建立Connection
js.js(合法性数据验证页面)
功能
1.实现首先数据提交的合法性验证;
基本这个留言系统就由这几个文件组成;后面开发要是需要我们再增加页面!
下面我们就要正式的开始,用ASP语言来实现我们的留言系统:
首先我们建立一个---------Conn.asp的文件,我们运用ADO技术来连接上我们建立好的数据库Worm.mdb
代码如下:
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////

<%
option explicit
dim conn
set conn = server.CreateObject("adodb.connection")
conn.open "driver={Microsoft Access driver (*.mdb)};dbq="&server.MapPath("worm.mdb")
%>

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////

index.asp 页面将会由两个表单组成,一个是管理员登陆表单,需要在后台处理登陆验证,还有一个就是留言发布表单,其中有这么几个文本字段,Username(留言者昵称),QQ(留言者QQ),Email(留言者Email地址),Content(留言内容),Attrib(留言属性,有Private和Public两个属性);

下面是--------js.js文件,用来对发布留言表单合法性的简单验证
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////

// JavaScript Document
/*
[360in.cn] (C)2001-2007 Ruoman Inc.
This is a freeware,
$Author: M.A.O
$Revision: 1.0
$Date: 2007/7/18
*/
function Check_login()
{
if(document.Admin_L.Login_user = "")
alert("用户名不能为空!!!");
document.Admin_L.Login_user.focus();
return false;
}
function check(){
if(document.PostCon.Username.value == "")
{
alert("用户名不能为空!!!");
document.PostCon.Username.focus();
return false;
}
var QQ;
QQ = document.PostCon.QQ.value;
if(document.PostCon.QQ.value == "")
{
alert("QQ号码不能为空!!!");
document.PostCon.QQ.focus();
return false;
}
else
{
if(isNaN(QQ))
{
alert("请您正确输入QQ号码!!");
document.PostCon.QQ.focus();
return false;}
if(QQ.length > 11 || QQ.length < 5)
{
alert("请检查QQ位数");
document.PostCon.QQ.focus();
return false;}
}
var Content = document.PostCon.Content.value;
var script = "script<>alertredirect"
if(document.PostCon.Content.value == "")
{
alert("留言内容不能为空");
document.PostCon.Content.focus();
return false;
}
//else
//{ if(Content.indexOf(script) != -1)
// alert("有非法内容!!!");
// /document.PostCon.Content.focus();
// this.value =="";
// return false;
// }
document.getElementById("PostCon").submit();
}
function JUMP()
{
window.document.location.href="index.asp?maomao=521&page=" + document.getElementById("jumpPage").value
}
function clean()
{
if(confirm("确认要重置留言吗?"))
document.PostCon.Content.value = "";
else
return false;
}

function changeImg()
{
var now = new Date();
var sec = now.getHours();
var result = sec%4;
document.getElementById("Logo").src="Images/" + result +".jpg";
//alert(result);
}
function delCon(m_id)
{
if(confirm("是否要删除留言?"))
window.document.location.href="reCon.asp?act=del&id=" + m_id;
else
return false;
}
var subWindow;
function openWin(www)
{ subWindow = window.open('reCon.asp?act=recontent&id='+www,'','width=500 height=300');
//var Content;
//Content = "<html><head><title>Welcome to my site</title><head><body>"
//Content += "<textarea name='textarea' cols='50' rows='8' align='center'></textarea class='recontent'>"
//Content += "<input type='button' value='This is new Window'></body></html>"
//subWindow.document.write(Content);
}

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
下面是首页留言处理的后台程序-------insert.asp文件
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
<!-- #include file="conn.asp" -->

<%
dim rs,sql
if request.QueryString("act")="" then
response.Write "<script language='javascript'>window.alert('非法提交');window.document.location.href='index.asp'</script>"
else
set rs = server.CreateObject("adodb.recordset")
sql = "Message"
rs.open sql,conn,1,3
rs.addnew
rs("m_name") = request.Form("Username")
rs("m_qq") = request.Form("QQ")
rs("m_email") = request.Form("Email")
rs("m_content") = request.Form("Content")
rs("m_attrib") = request.Form("attrib")
rs.update
rs.close
set rs = nothing
response.Write "<script language='javascript'>window.alert('发布留言成功!!!');window.document.location.href='index.asp'</script>"
end if
%>

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////

为啦让每页显示我们指定的页数,我写好啦一个翻页功能代码 --如下 ---

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//Frist Section

<%
dim rs,sql,pagelist,page
if request.QueryString("page") = "" then
page = 1
else
page=cint(request.QueryString("page"))
end if
pagelist = 3
set rs = server.CreateObject("adodb.recordset")
sql ="select top " &page*pagelist& " * from Message order by m_id desc"
rs.open sql,conn,1,1
rs.pagesize = pagelist
rs.absolutepage = page
%>
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////


/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//Second Section
<%
dim Link,Totalpage,Tnum
Link = "index.asp?maomao=521"
sql = "select count(*) as num from Message"
rs.open sql,conn,1,1
Tnum = rs("num")
Totalpage = Tnum \ pagelist
if Tnum mod pagelist > 0 then Totalpage = Totalpage + 1
response.Write " 总 " &Totalpage& " 页 第 " &page& "页"
if page = 1 then
response.Write " 首页 上一页 "
else
response.Write "<a href= " &Link& "&page=1> 首页 </a> <a href= " &Link& "&page=" &page-1& "> 下一页 </a>"
end if
if page < Totalpage then
response.Write "<a href=" &Link& "&page=" &page+1& ">下一页</a> <a href= " &Link& "&page= " &Totalpage& ">末页</a>"
else
response.Write " 下一页 末页 "
end if
%>

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////

//这两段翻页代码都是增加在首先文件index.asp中的!

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
管理员的验证登陆页面代码.....如下

CheckLogin.asp
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
<!-- #include file="conn.asp" -->
<%
dim username,password,rs,sql
username = trim(request.Form("Login_user"))
password = trim(request.Form("Login_pass"))
'response.Write username
'response.Write password
if request.QueryString("act")<>"Login" then
response.Write "<script language='javascript'>window.alert('非法参数');history.go(-1);</script>"
else
set rs = server.CreateObject("adodb.recordset")
sql ="select * from Admin"
rs.open sql,conn,1,1
if username <> rs("Username") or password <> rs("Password") then
response.Write "<script>window.alert('用户名密码错误');history.go(-1);</script>"
else
Session("Admin_name") = username
Session("Admin_pass") = password
response.Write "<script language='javascript'>window.alert('欢迎" &Session("Admin_name")& "登陆');history.go(-1);</script>"
end if
end if
%>

//////////////////////////////////////////////////////////////////////////////////////////////////////////////
留言处理页面 一 reCon.asp
//////////////////////////////////////////////////////////////////////////////////////////////////////////
<%
dim rs,sql
if request.QueryString("act")="del" then
sql ="delete from Message where m_id="&request.QueryString("id")
conn.execute sql
response.Write "<script language='javascript'>document.location.href='index.asp'</script>"
%>
<%
else
if request.QueryString("act")="recontent" then
'sql = "update Message set m_recontent='" &request.Form("Recontent")& "' where m_id="&request.QueryString("id")
'conn.execute sql
set rs = server.CreateObject("adodb.recordset")
'sql = "Update Message set m_recontent='" &request.Form("Recontent")& "' where m_id="&request.QueryString("id")
'conn.execute sql
sql = "select * from Message where m_id="&request.QueryString("id")
rs.open sql,conn,1,1
'rs("m_recontent") = request.Form("Recontent")
'rs.update
end if
%>

<%
end if
%>
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
留言处理页面2 ------------- backCon.asp
////////////////////////////////////////////////////////////////////////////////////////////////////////////////

<!-- #include file="conn.asp" -->
<%
if request.QueryString("act")="backCon" then
if request.form("Recontent") = "" then
response.write "<script language='javascript'>alert('回复不能为空');location.href='reCon.asp';</script>"
else
dim val,sql
val = request.Form("Recontent")
sql ="update Message set m_recontent='" &val& "' where m_id="&request.QueryString("id")
conn.execute sql
response.Write "<script language='javascript'>window.alert('回复留言成功!!!');this.close();</script>"
end if
else
response.Redirect("index.asp")
end if
%>
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
其实在做一个项目的时候,不管项目的大小都要先对项目进行业务的简单分析,然后通过业务的需求实例化出我们的数据库结构. 我们做的是一个留言系统,为啦能让大家更好的理解和掌握,所以我尽量以实例来说!
首先我们要设计出我们的数据库,根据业务需求,我们这个留言系统最大在线人数一般在20人以内,按照这个并发量我们就直接选择Microsoft 的ACCESS做为我们的数据库产品! 而不去选择SQL server or Mysql啦!
我们要建立两张表分别是 Admin(用来存储管理员的相关信息) Message(用来存储留言者的信息及其留言内容和回复内容)
Admin表中有---Id,Username,Password 三个字段
Message表中有 m_id,m_name,m_qq,m_email,m_content,m_attrib.m_time七个字段.
设计完数据库后,我们就要使用HTML来布局出我们留言系统的雏形来,在使用CSS来美化修饰页面布局;设计草图如下:(仅仅是草图,所以大家在做的时候一定要用心做,相信大家一定比我做的好,我只是为了实现教程,所以有些简略)
下来我们来分析下我们的留言系统有几个主要页面组成:
index.asp(留言系统首页)
功能:
1.默认的留言及其浏览页面(还有一个附加的首页Default.asp,和index.asp页面一样只是为了不同的请求处理.
Default.asp页面编码(<%response.redirect "index.asp"%>)就这一句实现跳转到index,asp页面
insert.asp(首页留言信息的后台处理页面)
功能:
1.实现首页信息写入数据库中.
admin.asp(管理员管理页面)
功能:
1.实现留言的管理的相关事项.如删除留言,回复留言等.
2.留言系统的相关设置,如,动态改变版权,标题,每页要显示的留言条数.
conn.asp(数据库连接处理页面)
功能:
1.实现程序同数据库的访问,通过server对象来创建一个object建立Connection
js.js(合法性数据验证页面)
功能
1.实现首先数据提交的合法性验证;
基本这个留言系统就由这几个文件组成;后面开发要是需要我们再增加页面!
下面我们就要正式的开始,用ASP语言来实现我们的留言系统:
首先我们建立一个---------Conn.asp的文件,我们运用ADO技术来连接上我们建立好的数据库Worm.mdb
代码如下:


















































































































/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
下面是首页留言处理的后台程序-------insert.asp文件
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////

























































































































































