ASP留言板程式碼

wulongde353607發表於2013-04-10

第一步:在access中建立一個board.mdb資料庫裡面有admin和msgs二張表欄位如圖所示:

 

 

 

第二步:然後連線資料庫頁面:conn.asp

程式碼如下:

<%
  dbpath=server.mappath("board.mdb")
  '建立連線物件
  set conn=server.createobject("adodb.connection")
  conn.open "PROVIDER=Microsoft.jet.OLEDB.4.0;data source="&dbpath
%>

 

第三步:發表留言和顯示留言頁面:index.asp

程式碼如下:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<!--留言板新增程式碼!-->
<!--#include file="add.asp"-->
<!--簡單分頁程式碼!-->
<!--#include file="page.asp"-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>無標題文件</title>
<link type="text/css" href="style.css" rel="stylesheet" />
</head>

<body>
<div id="box">
 <div id="logo"><img src="imgs/logo.png" border="0" alt="導航logo" /></div>
 <div id="contant">
  <div id="liuyan">
   <h3><span>現在位置</span>客戶留言</h3>
   <p><span style="float:right; padding-right:16px;"><a href="adminlogin.asp">管理員登入</a></span>各位訪客,本留言板用於意見交流!</p>
   <%
    for i=1 to rs.pagesize
     if rs.eof then exit for
   %> 
   <div class="neirong">
    <div class="name"><%=rs("User")%></div>
    <div class="id">&nbsp;NO.<%=rs("ID")%></div>
    <div class="time">&nbsp;TIME:<%=rs("data")%></div>
    <div class="wz">留言:<%=rs("content")%></div>
   </div><!--留言內容部分程式碼!-->
   <%
    rs.movenext
    next
   %>
   <div id="page">
   共有<font color="#FF0000"><%=rs.recordcount%></font>條資料&nbsp;
   <%if rs.pagecount > 0 then%>
    當前<%=intpage%>/<%=rs.PageCount%>頁
   <%else%>
    當前頁0/0
   <%end if%>
    <a href="index.asp?page=1">首頁</a>&nbsp;
   <%if pre then%>
    <a href="index.asp?page=<%=intpage -1%>">上頁</a>&nbsp; <%end if%>
   <%if last then%>
    <a href="index.asp?page=<%=intpage +1%>">下頁</a>&nbsp; <%end if%>
    <a href="index.asp?page=<%=rs.PageCount%>">尾頁</a>&nbsp;轉到第
   <select name="sel_page" onchange="javascript:location=this.options[this.selectedIndex].value;" style="border:1px solid #ccc;">
   <%
    for i = 1 to rs.PageCount
    if i = intpage then%>
    <option value="index.asp?page=<%=i%>" selected><%=i%></option>
   <%else%>
    <option value="index.asp?page=<%=i%>"><%=i%></option>
   <%
     end if
   next
   %>
   </select>頁
  
   </div><!--留言內容分頁部分程式碼!-->
   <div id="fb">
    <h4>&nbsp;&gt;&gt;&gt;我來發表留言</h4>
    <div id="pic"><img src="imgs/bi.png" /></div>

    <div id="lynr">
     <form action="add.asp?act=add" method="post">
      <span>留言內容:</span><br />
      <textarea name="content" class="textarea"></textarea><br />
      留 言 者:<input type="text" name="User" value="匿名使用者" class="user" /><br />
      <input type="submit" name="sub" value="" style="width:70px; height:24px; background:url(imgs/tijiao.jpg) no-repeat;" />
      <input type="reset" name="res" value="" style="width:70px; height:24px; background:url(imgs/reset.jpg) no-repeat;" />
     </form>
    </div>
   </div><!--我來發表留言部分程式碼!-->
  </div>
 </div>
 <div id="footer"><img src="imgs/footer.png" /></div>
</div>
</body>
</html>

 

第四步:新增留言程式碼的頁面:add.asp

程式碼如下:

<!--#include file="conn.asp"-->
<%
if request("act")="add" then
 dim rs,sql,User,content
 set rs=server.CreateObject("adodb.recordset")
 sql="select ID,User,content,data from msgs"
 '1,3為插入資料
 rs.open sql,conn,1,3
 '新增資料
 
 rs.addnew
 '請求表單的變數,定義變數為xxx,這裡request.form是請求表單的user並返回給user
 User=request.Form("User")
 content=request.Form("content")
 
 '將請求得到的表單值傳向記錄集
 rs("User")=User
 rs("content")=content
 
 '更新一下資料庫中的資料,關閉記錄集,接著銷燬記錄集
 rs.update

 rs.close
 set rs=nothing
 '關閉資料庫連線,接著銷燬連線
 'conn.close
 'set conn=nothing
 response.Redirect "index.asp"
end if
%>

 

第五步:管理員登入管理頁面只有先通過登入頁面adminlogin.asp才能進到管理頁面default.asp

adminlogin.asp程式碼如下:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<!--#include file="Conn.asp"-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>無標題文件</title>
<style type="text/css">
*{margin:0 auto; padding:0; border:0; font-size:14px;}
#box{width:300px; height:160px; border:1px solid #ccc; margin-top:230px; background:url(imgs/bg.jpg) no-repeat;}
h3{height:40px; line-height:40px; font-size:20px; font-weight:normal;}
.space{margin-top:14px; border:1px solid #ccc;}
.submit{margin-top:14px; width:40px; height:24px; background:url(imgs/login.jpg) no-repeat;}
.re{background:url(imgs/re.jpg) no-repeat; width:40px; height:24px; margin-top:14px;}
</style>
</head>

<body>
<center>
<div id="box">
 <h3></h3>
 <form action="adminlogin.asp?action=ChkLogin" name="checkpass" method="post">
  賬號:<input type="text" name="name" class="space" /><br />
  密碼:<input type="password" name="pwd" class="space" /><br />
     <input type="submit" name="submit" value="" class="submit" />&nbsp;&nbsp;
     <input type="reset" name="reset" value="" class="re" />
 </form>
</div>
<%
 If Request("action")="ChkLogin" Then
  Call ChkLogin()
 End If
%>
<% '對登入資訊進行檢查
 Sub ChkLogin()
  Dim name
  Dim pwd
  
  name=Trim(Request.Form("name"))
  pwd =Trim(Request.Form("pwd"))
  
  If name="" Or pwd="" Then
   Response.Write "<script>alert('請輸入帳號或密碼!');history.go(-1);</script>"
    Response.End  
  Else
   Set Rs = Server.CreateObject("ADODB.Recordset")
   Sql="Select * From [admin] Where name='"&name&"'"
   Rs.Open Sql,conn,2,3
   If name=Rs("name") And pwd=Rs("pwd") Then
    Session("admin")=Rs("name")
    Response.Redirect "index.asp"
   Else
       Response.Write "<script>alert('帳號或密碼錯誤,請重新輸入!');history.go(-1);</script>"
     Response.End
    End If
   End If 
  Rs.Close
  Set Rs=nothing  
 End Sub
%>
</center>
</body>
</html>

 

第六步:成功進入default.asp跟index.asp差不多、多了刪除、回覆、編輯等程式碼

程式碼如下:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<!--留言新增程式碼!-->
<!--#include file="conn.asp"-->
<!--簡單分頁程式碼!-->
<!--#include file="page.asp"-->
<!--就是說如果session這個("admin")的值不是空的話就執行。-->
<%if session("admin")<>"" then%>
<!--就是說如果session這個("admin")的值不是空的話就執行。-->
<%
 else
 response.Redirect("adminlogin.asp")
 end if
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>無標題文件</title>
<link type="text/css" href="style.css" rel="stylesheet" />
</head>

<body>
<div id="box">
 <div id="logo"><img src="imgs/logo.png" border="0" alt="導航logo" /></div>
 <div id="contant">
  <div id="liuyan">
   <h3><span>現在位置</span>管理員[後臺]</h3>
   <p><span style="float:right; padding-right:20px;"><a href="index.asp">返回首頁</a></span>歡迎你,你是以管理員的身份登入你可以在此更好的管理留言!</p>
   <%
    for i=1 to rs.pagesize
     if rs.eof then exit for
   %> 
   <div class="neirong">
    <div class="name"><%=rs("User")%></div>
    <div class="id">&nbsp;NO.<%=rs("ID")%></div>
    <div class="time">&nbsp;TIME:<%=rs("data")%></div>
    <div class="wz" style="padding-bottom:6px;"><span style="float:right; width:100px;"><a href="edit.asp?action=edit&id=<%=Rs("ID")%>">編輯</a>&nbsp;<a href="delete.asp?id=<%=rs("ID")%>" target="_parent" onClick="return confirm('你確定要刪除!');">刪除</a>&nbsp;<a href="reply.asp?action=Reply&id=<%=Rs("ID")%>">回覆</a></span>留言:<%=rs("content")%></div>
    <%if rs("reply") <> "" then%> <!--判斷當reply不為空的時候則-->
    <div style="padding-top:6px;"><font color="#0000FF">回覆:</font><font color="#990000"><%=(rs("reply"))%></font></div><!--回覆內容程式碼!-->
    <%end if%>
   </div><!--留言內容部分程式碼!-->
   <%
    rs.movenext
    next
   %>   
   <div id="page">
   共有<font color="#FF0000"><%=rs.recordcount%></font>條資料&nbsp;
   <%if rs.pagecount > 0 then%>
    當前頁<%=intpage%>/<%=rs.PageCount%>
   <%else%>
    當前頁0/0
   <%end if%>
    <a href="default.asp?page=1">首頁</a>&nbsp;
   <%if pre then%>
    <a href="default.asp?page=<%=intpage -1%>">上頁</a>&nbsp; <%end if%>
   <%if last then%>
    <a href="default.asp?page=<%=intpage +1%>">下頁</a>&nbsp; <%end if%>
    <a href="default.asp?page=<%=rs.PageCount%>">尾頁</a>&nbsp;轉到第
   <select name="sel_page" onchange="javascript:location=this.options[this.selectedIndex].value;" style="border:1px solid #ccc;">
   <%
    for i = 1 to rs.PageCount
    if i = intpage then%>
    <option value="default.asp?page=<%=i%>" selected><%=i%></option>
   <%else%>
    <option value="default.asp?page=<%=i%>"><%=i%></option>
   <%
     end if
   next
   %>
   </select>頁
    
   </div><!--留言內容分頁部分程式碼!-->
  </div>
 </div>
 <div id="footer"><img src="imgs/footer.png" /></div>
</div>
</body>
</html>

 

第七步:編輯內碼表面edit.asp

程式碼如下:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<!--#include file="Conn.asp"-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>無標題文件</title>
</head>

<body>
<% 
 id = Request("ID")
 Set Rs = Server.CreateObject("ADODB.Recordset")
 Sql = "Select * From [msgs] Where id="&ID
 Rs.Open Sql,conn,3,3
%>
<div style="width:600px; height:280px; margin:0 auto;">
 <h3 style="height:30px; line-height:30px; text-align:center;">編輯留言</h3>
 <form name="form1" method="post" action="edit.asp?action=SaveEdit&id=<%=Rs("ID")%>" ID="Form1">
  <span style="height:20px; line-height:20px;">留言內容</span><br />
  <textarea name="content" style="width:400px; height:120px;"><%=Rs("content")%></textarea><br /><br />
  留言人:<input type="text" name="User"  value="<%=Rs("User")%>" /><br /><br />
  <input type="submit" name="sub" value="確定" />
  <input type="reset" name="res" value="重置" />
 </form>
  <% Rs.Close
  Set Rs = nothing
  If Request("action") = "SaveEdit" Then
   Call SaveEdit()
  End If
  %>
 
  <%'儲存修改過的留言資訊
 Sub SaveEdit()
  Dim User
  Dim content
  
  User= Trim(Request.Form("User"))
  content = Trim(Request.Form("content"))
  
  If User = "" Or content = "" Then
   Response.Write "<Script>alert('留言主題、留言內容不能為空!');</Script>"
   Response.End
  Else
   Set Rs = Server.CreateObject("ADODB.Recordset")
   Sql = "Select * From [msgs] Where id="&ID
   Rs.Open Sql,conn,3,3
        
   Rs("User") = User
   Rs("content") = content
   Rs.Update
   Rs.Close
   Set Rs = nothing
   
   Response.Redirect "Default.asp"
  End If 
  End Sub  
  %>
</div>
</body>
</html>

 

第八步:回覆留言程式碼reply.asp

程式碼如下:

<!--#include file="conn.asp"-->
<%
 Id=request("Id")
 set rs=server.CreateObject("adodb.recordset")
 sql="select * from [msgs] where Id="&Id
 rs.open sql,conn,3,3
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>無標題文件</title>
<style type="text/css">
*{margin:0 auto; padding:0; font-size:14px;}
#box{width:608px; height:308px; margin:0 auto; border-collapse:collapse;}
.hf{text-align:center; line-height:30px; background:#66FF99; color:#ffffff; font-weight:bold;}
.text{width:450px; height:150px; border:1px solid #ccc; margin-left:1px;}
</style>
</head>

<body>
<div id="box">
 <form method="post" action="reply.asp?action=SaveReply&Id=<%=rs("Id")%>">
  <table width="600" border="1" cellspacing="0" cellpadding="0" style="border-collapse:collapse;">
    <tr>
   <td height="30" colspan="2" class="hf">管理員回覆留言</td>
    </tr>
    <tr>
   <td width="100" height="30" align="right">留 言 者:</td>
   <td width="500"><%=rs("User")%></td>
    </tr>
    <tr>
   <td height="30" align="right">留言內容:</td>
   <td><%=rs("content")%></td>
    </tr>
    <tr>
   <td height="180" align="right">回覆留言:</td>
   <td><textarea name="reply" class="text"></textarea></td>
    </tr>
    <tr>
   <td height="30" colspan="2" align="center"><input type="submit" value="確定" />&nbsp;&nbsp;<input type="reset" value="重置" /></td>
    </tr>
  </table>
 </form>
 <%
  rs.close
  set rs=nothing
  if request("action")="SaveReply" then
      call SaveReply()
  end if
 %>
 <%
  '儲存回覆的留言資訊,定義了一個SaveReply()子函式
  sub SaveReply()
   Dim reply
   reply=Trim(request.Form("reply"))
   set rs=server.CreateObject("adodb.recordset")
   sql="select * from [msgs] where Id="&Id
   rs.open sql,conn,3,3
   
   rs("reply")=reply
   rs.update
   rs.close
   set rs=nothing
   
   response.Redirect "default.asp"
  end sub
 %>
</div>

</body>
</html>

 

第九步:刪除留言程式碼del.asp

程式碼如下:

<!--#include file="conn.asp"-->
<%
 set rs=server.CreateObject("adodb.recordset")
 id=request.QueryString("id")
 sql="select * from msgs where id="&ID
 rs.open sql,conn,2,3
 rs.delete
 rs.update
 response.Redirect "default.asp"
%>

 

最後就是分頁程式碼page.asp

程式碼如下:

<%
dim i,intPage,page,pre,last,filepath
  set rs = server.CreateObject("adodb.recordset")
   sql="select * from msgs order by id desc"
      rs.PageSize = 10         '這裡設定每頁顯示的記錄數
      rs.CursorLocation = 3
      rs.Open sql,conn,1,3     '這裡執行你查詢SQL並獲得結果記錄集
      pre = true
      last = true
      page = trim(Request.QueryString("page"))
     
      if len(page) = 0 then
                  intpage = 1
                  pre = false
      else
          if cint(page) =< 1 then
               intpage = 1
               pre = false
          else
              if cint(page) >= rs.PageCount then
                  intpage = rs.PageCount
                  last = false
              else
                   intpage = cint(page)
             end if
         end if
      end if
    if not rs.eof then
         rs.AbsolutePage = intpage
    end if
%>

相關文章