Asp 留言簿簡單製作

 因  因为有朋问我留言系统怎么来做,其实太简单啦,不过为了给大家说清楚还是决定做一个教程来说明如何制作,因为时间的问题,只能略详细的给大家把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 
$
Date2007/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 &#92; 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 
   
%
> 
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值