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  
$
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  & # 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、付费专栏及课程。

余额充值