a简单的ajax留言板(采用三层模式)_Ajax编程_黑客防线网安服务器维护基地--Powered by WWW.RONGSEN.COM.CN

a简单的ajax留言板(采用三层模式)

作者:黑客防线网安Ajax教程基地 来源:黑客防线网安Ajax教程基地 浏览次数:0

本篇关键词:模式采用留言板简单
黑客防线网安网讯:  好久没有写过asp了,这回写个留言板还真觉得有点难度,竞然写了整整一天,哈哈.  就只有留言其它的都什么也没写,采用三层结构(不知道算不算,本来对三层的概念很糊涂)  演示www.zj55.co...

  好久没有写过asp了,这回写个留言板还真觉得有点难度,竞然写了整整一天,哈哈.
  就只有留言其它的都什么也没写,采用三层结构(不知道算不算,本来对三层的概念很糊涂)

  演示www.zj55.com的留言板,希望各位大哥大姐如果发现有漏洞的话请在这里告诉我,千万不要黑我的网站,在这里小弟先谢过了.

  index.asp
  <%@ codepage=65001%>
  <%
  option explicit
  %>
  <% Response.Charset="utf-8"%>
  <% Session.CodePage=65001 %>
  <!-- #include file="AccHelper.asp" -->
  <!-- #include file="Common.asp"-->
  <!-- #include file="DAL_Guest.asp" -->
  <!-- #include file="MOD_Guest.asp" -->
  <!-- #include file="BLL_Guest.asp" -->
  <%
   Dim mybll
   Dim myList
   Set mybll = new BLL_Guest
   Select Case Request("tCMD")
    Case "SAVE"
     mybll.Insert()
    Case "DEL"
     mybll.Delete()
   End Select
   myList = mybll.FindByPage()
  %>
  <h2>客户留言</h2>
  <p>
  <form name="subForm" id="subForm">
   <textarea id="con" name="con" cols="56" rows="6" wrap="VIRTUAL"></textarea>
   <input type="button" name="submit" value="提交留言" onclick="$('guest/index.asp?tCMD=SAVE&content='+escape(this.form.con.value))" />
  </form>
  </p>
  <%=myList%>

  BLL_Guest.asp
  <%
   '/// <summary>
   '/// 摘要说明
   '/// </summary>
   Class BLL_Guest

    Private mycom,mymod,mydal

    Private LI,UL

    Private DEL
   
    '获取信息
    Public Sub GetGuest()

     mydal.GetGuest(Id)

    End Sub

    '新增信息
    Public Sub Insert()
    
     mymod.Content = Request("content")
     mymod.re = Request("Re")
     mymod.Addtime = Now()
     mymod.Ip = request.servervariables("HTTP_X_FORWARDED_FOR")
     If len(mymod.Ip)<=0 Then mymod.Ip = request.servervariables("REMOTE_ADDR")

     Call mydal.Insert(mymod)

    End Sub

    '更新信息
    Public Sub Update()

     Call mydal.Update(mymod)

    End Sub

    '删除信息
    Public Sub Delete()

     mydal.Delete(Request("Id"))

    End Sub

    '查找信息
    Public Function FindByPage()

     Dim PageSize,CurrentPage,WhereValue,OrderValue,RecordCount
     Dim objRS
     Dim tmp1,tmp2,tmp3,parms,i
     Dim tCMD
     tCMD = Request("tCMD")
     PageSize = "8"
     CurrentPage = Request("PageNo")
     If Len(CurrentPage)<=0 Then
      CurrentPage=1
     End If
     WhereValue = ""
     OrderValue = "Id"
     Set objRS = mydal.FindByPage(PageSize,CurrentPage-1,WhereValue,OrderValue)
     i = 1
     RecordCount = mydal.Count(WhereValue)
     Do While Not objRS.EOF
      If tCMD="DEL" Then
       DEL = "<a href=""?tCMD=DEL&Id="&objRS("Id")&""">删除</a>"
      Else
       DEL = ""
      End If
      parms=Array(i,objRS("content"),objRS("ip"),objRS("addtime"),DEL)
      tmp1 = tmp1 & mycom.Format(LI,parms)
      objRs.Movenext
      i = i + 1
     Loop
     tmp3 = mycom.Page(PageSize,CurrentPage,RecordCount,"guest/index.asp?tCMD=LIST")
     parms=Array(tmp1,tmp3)
     tmp2 = tmp2 & mycom.Format(UL,parms)

     FindByPage = tmp2

    End Function

    Private Sub Class_Initialize()

     LI = "<li><span>{0}</span> <span>{1}</span><br /><span>作者:{2}</span> <span>{3}</span> <span>{4}</span></li>" & vbCrLf
     UL = "<UL>{0}<li>{1}</li></UL>"
     DEL = ""

     Set mycom = new Common
     set mymod = new MOD_Guest
     set mydal = new DAL_Guest

    End Sub

    Private Sub Class_Terminate()

     Set mycom = Nothing
     Set mymod = Nothing
     set mydal = Nothing

    End Sub

   End Class
  %>

  DAL_Guest.asp
  <%
   '/// <summary>
   '/// 摘要说明
   '/// </summary>
   Class DAL_Guest
   
    Private SQL_01
    Private SQL_02
    Private SQL_03
    Private SQL_04
    Private SQL_05
    Private SQL_06
    Private SQL_07

    Private mycom,myacc,mymod

    '/// <summary>
    '/// 获得信息
    '/// </summary>
    '/// <param name="Id">判断字段</param>
    '/// <returns>信息体</returns>
    Public Function GetGuest(Id)

     Dim parms,SQL,objRS
     parms = Array(Id)
     SQL  = mycom.Format(SQL_01,parms)
     Set objRS = myacc.ExecuteReader(myacc.CONN_STRING,SQL)
     If  Not objRS.EOF then
      Call mymod.SetVar(objRs("Id"),objRs("Content"),objRs("Re"),objRs("Addtime"),objRs("Ip"))
      Set GetGuest = mymod
     Else
      GetGuest = Null
     End If
    
    End Function

    '/// <summary>
    '/// 插入信息
    '/// </summary>
    '/// <param name="">信息体</param>
    Public Sub Insert(vmod)

     Dim parms,SQL
     parms = Array(vmod.Content,vmod.Re,vmod.Addtime,vmod.Ip)
     SQL  = mycom.Format(SQL_02,parms)
     Call myacc.ExecuteReader(myacc.CONN_STRING,SQL)

    End Sub

    '/// <summary>
    '/// 更新信息
    '/// </summary>
    '/// <param name="">信息体</param>
    Public Sub Update(vmod)
    
     Dim parms,SQL
     parms = Array(vmod.Id,vmod.Content,vmod.Re,vmod.Addtime,vmod.Ip)
     SQL  = mycom.Format(SQL_03,parms)
     Call myacc.ExecuteReader(myacc.CONN_STRING,SQL)

    End Sub

    '/// <summary>
    '/// 删除信息
    '/// </summary>
    '/// <param name="">信息体</param>
    Public Sub Delete(Id)

     Dim parms,SQL
     parms = Array(Id)
     SQL  = mycom.Format(SQL_04,parms)
     Call myacc.ExecuteNonQuery(myacc.CONN_STRING,SQL)

    End Sub

    '/// <summary>
    '/// 统计信息
    '/// </summary>
    '/// <param name="">信息体</param>
    Public Function Count(WhereValue)

     Dim parms,SQL,objRS
     parms = Array(WhereValue)
     SQL  = mycom.Format(SQL_07,parms)
     Set objRS = myacc.Recordset(myacc.CONN_STRING,SQL)
     Count = objRS.RecordCount

    End Function

    '/// <summary>
    '/// 根据条件列出所有信息(带有分页)
    '/// </summary>
    '/// <param name="PageSize">每页记录数</param>
    '/// <param name="CurrentPage">页码</param>
    '/// <param name="WhereValue">判断值</param>
    '/// <param name="OrderValue">排序</param>
    '/// <returns>返回objRS</returns>
    Public Function FindByPage(PageSize,CurrentPage,WhereValue,OrderValue)

     Dim parms,SQL,objRS
     Dim s1
     If CurrentPage="0" Then  
      s1 =  PageSize & "|" + OrderValue & "|" & WhereValue
      parms = Split(s1,"|")
      SQL = mycom.Format(SQL_05,parms)
     Else
      s1 = PageSize & "|" & OrderValue & "|" + WhereValue & "|" & CurrentPage*PageSize
      parms = Split(s1,"|")
      SQL = mycom.Format(SQL_06,parms)
     End If

     Set objRS = myacc.ExecuteReader(myacc.CONN_STRING,SQL)
     Set FindByPage = objRS
    
    End Function

  
    Private Sub Class_Initialize()

     SQL_01 = "Select * From [Guest] Where Id = {0}"
     SQL_02 = "Insert into [Guest] ([Content],[Re],[Addtime],[Ip]) values('{0}','{1}','{2}','{3}')"
     SQL_03 = "Update [Guest] Set [Content]='{1}',[Re]='{2}',[Addtime]='{3}',[Ip]='{4}' Where Id = {0}"
     SQL_04 = "Delete From [Guest] Where Id In ({0})"
     SQL_05 = "Select Top {0} * From [Guest] Where Content Like '%{2}%' Order By {1} Desc,Id Desc"
     SQL_06 = "Select Top {0} * From [Guest] Where Content Like '%{2}%' And Id Not IN(Select Top {3} Id From [Guest] Where Content Like '%{2}%' Order By {1} Desc,Id Desc) Order By {1} Desc,Id Desc"
     SQL_07 = "Select * From [Guest] Where Content Like '%{0}%' "

     Set mycom = new Common
     Set myacc = new AccHelper
     Set mymod = new MOD_Guest

    End Sub

    Private Sub Class_Terminate()

     Set mycom = Nothing
     Set myacc = Nothing
     Set mymod = Nothing

    End Sub

   End Class
  %>

  MOD_Guest.asp
  <%
   '/// <summary>
   '/// 摘要说明。
   '/// </summary>
   Class MOD_Guest

    Public Id
    Public Content
    Public Re
    Public Addtime
    Public Ip

    Public Sub SetVar(vId,vContent,vRe,vAddtime,vIp)
     Id=vId
     Content=vContent
     Re=vContent
     Addtime=vAddtime
     Ip=vIp
    End Sub

   End Class
  %>

  Common.asp
  <%
   '/// <summary>
   '/// 摘要说明
   '/// </summary>
   Class Common

    '/// <summary>
    '/// 获得信息
    '/// </summary>
    '/// <param name="Id">需要内容</param>
    '/// <param name="Id">替换关键字</param>
    '/// <returns>格式化后内容</returns>
    Public Function Format(str,arr)

     Dim r,i
     r = str  
     For i = 0 To UBound(arr)
      r = Replace(r,"{"&i&"}",arr(i))
     Next
     Format = r

    End Function

    Public Function Page(PageSize,CurrentPage,RecordCount,PageUrl)
    
     const C_RECORDCOUNT = "合计<STRONG><FONT color=""red"">{0}</FONT></STRONG>篇&nbsp;|"
     const C_FIRSTPAGE1 = "&nbsp;<a href=""#"" onclick=""$('{0}&amp;PageNo={1}')"">首页</a>"
     const C_FIRSTPAGE2 = "&nbsp;首页"
     const C_PREVPAGE1 = "&nbsp;<a href=""#"" onclick=""$('{0}&amp;PageNo={1}')"">上一页</a>"
     const C_PREVPAGE2 = "&nbsp;上一页"
     const C_NEXTPAGE1 = "&nbsp;<a href=""#"" onclick=""$('{0}&amp;PageNo={1}')"">下一页</a>"
     const C_NEXTPAGE2 = "&nbsp;下一页"
     const C_LASTPAGE1 = "&nbsp;<a href=""#"" onclick=""$('{0}&amp;PageNo={1}')"">尾页</a>"
     const C_LASTPAGE2 = "&nbsp;尾页"
     const C_CURRENTPAGE = "&nbsp;页次:<STRONG><FONT color=""red"">{0}</FONT>/{1}</STRONG>页"
     const C_PAGESIZE = "&nbsp;<STRONG>{0}</STRONG>篇/页&nbsp;&nbsp;"
     const C_GOTOPAGE = "&nbsp;跳转:<input type=""text"" name=""goto"" value=""{1}"" onchange=""$('{0}&amp;PageNo='+this.value)"" style=""width:20px;border:1px""/>&nbsp;&nbsp;"
    
     Dim PageCount,pages
     Dim lRecordCount,lFirstpage,lPrevpage,lNextpage,lLastpage,lCurrentpage,lPagesize,lGotopage
     Dim p,parms

     If RecordCount Mod PageSize <> 0 Then
      pages = 1
     else
      pages = 0
     End If
     PageCount=CInt(RecordCount/PageSize + pages)
    
     parms=Array(RecordCount)
     lRecordCount = Format(C_RECORDCOUNT,parms)

     if CInt(CurrentPage)>1 Then
      parms=Array(Pageurl,1)
      lFirstpage = Format(C_FIRSTPAGE1,parms)
      parms=Array(Pageurl,CInt(CurrentPage)-1)
      lPrevpage = Format(C_PREVPAGE1,parms)
     Else
      lFirstpage=C_FIRSTPAGE2
      lPrevpage=C_PREVPAGE2
     End If

     if CInt(CurrentPage)<PageCount Then
      parms=Array(Pageurl,CInt(CurrentPage)+1)
      lNextpage = Format(C_NEXTPAGE1,parms)
      parms=Array(Pageurl,CInt(CurrentPage)+1)
      lLastpage = Format(C_LASTPAGE1,parms)
     Else  
      lNextpage=C_NEXTPAGE2
      lLastpage=C_LASTPAGE2
     End If

     parms=Array(CurrentPage,PageCount)
     lCurrentpage = Format(C_CURRENTPAGE,parms)
     parms=Array(PageSize)
     lPagesize = Format(C_PAGESIZE,parms)
     parms=Array(Pageurl,CurrentPage)
     lGotopage = Format(C_GOTOPAGE,parms)
    
     p=lRecordCount&lFirstpage&lPrevpage&lNextpage&lLastpage&lCurrentpage&lPagesize&lGotopage
     Page = p

    End Function

   End Class
  %>

  AccHelper.asp
  <%
   '/// <summary>
   '/// AccHelper 的摘要说明。
   '/// </summary>
   Class AccHelper

    Public CONN_STRING

    '/// <summary>
    '/// 执行ExecuteNonQuery
    '/// </summary>
    '/// <param name="connString">连接字符</param>
    '/// <param name="cmdText">sql命令</param>
    Public Function ExecuteNonQuery(connString,cmdText)
    
     Dim objConn
     Set objConn = Server.CreateObject("ADODB.Connection")
     objConn.Open connString
     objConn.Execute(cmdText)

    End Function

    '/// <summary>
    '/// 执行ExecuteReader
    '/// </summary>
    '/// <param name="connString">连接字符</param>
    '/// <param name="cmdText">sql命令</param>
    '/// <returns>RS</returns>
    Public Function ExecuteReader(connString,cmdText)
   
     Dim objConn,objRS
     Set objConn = Server.CreateObject("ADODB.Connection")
     objConn.Open connString
     Set objRS = objConn.Execute(cmdText)
     Set ExecuteReader = objRS

    End Function

    '/// <summary>
    '/// 执行Recordset
    '/// </summary>
    '/// <param name="connString">连接字符</param>
    '/// <param name="cmdText">sql命令</param>
    '/// <returns>RS</returns>
    Public Function Recordset(connString,cmdText)
   
     Dim objConn,objRS
     Set objConn = Server.CreateObject("ADODB.Connection")
     objConn.Open connString
     Set objRS = Server.CreateObject("ADODB.RecordSet")
     objRS.Open cmdText,objConn,1,3
     Set Recordset = objRS

    End Function

    Private Sub Class_Initialize()
     CONN_STRING = "provider = microsoft.jet.oledb.4.0;data source=" & Server.Mappath("db.mdb")
    End Sub

   End Class
  %>

    黑客防线网安服务器维护方案本篇连接:http://www.rongsen.com.cn/show-15571-1.html
网站维护教程更新时间:2012-04-05 00:03:20  【打印此页】  【关闭
我要申请本站N点 | 黑客防线官网 |  
专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479

footer  footer  footer  footer