Board logo

標題: [教學] (實戰專題) 行政公佈欄 [打印本頁]

作者: 小誌    時間: 2010-5-26 22:16     標題: (實戰專題) 行政公佈欄

所謂的『行政公佈欄』就類似很多網站都會有的『網站更新紀錄』一樣,一般的使用情況都是一有變動就得重新的編寫網頁,但是我們利用資料庫與ASP程式的設計,即可透過瀏覽器進行線上資料更新的動作。

程式流程

本程式範例共分為3個部分,分別是:

作者: 小誌    時間: 2010-5-26 22:22

公佈欄程式網頁

在公佈欄程式網頁Index.asp中可分為兩大部分,一為現有的公告內容條列,另一為用來新增公告的身分確認密碼表單資料傳送!

條列現有公告內容

[attach]1026[/attach]




注意
上圖中標示為紅色的HTML網頁標籤,因為我們幫公告發佈單位加上了聯絡電子信箱的超鏈結,所以請你要特別小心<>(標籤括弧符號)的位置與數量。



密碼表單

在公佈欄程式網頁下方有一個填寫密碼的表單欄位,表單中只有一個填寫密碼的欄位與『發佈公告』的傳送按鈕,它只是以表單的形式將認證密碼送出而已:

[attach]1027[/attach]

這個傳送密碼的表單原始碼如下圖所示:

[attach]1028[/attach]

注意:


本程式範例預設密碼為"test"
index.asp
  1. <%
  2. '建立資料庫連結物件
  3.         Set conobject = Server.CreateObject("ADODB.Connection")
  4.         DBPath = Server.MapPath("news.mdb")
  5. '連結資料庫       
  6.         conobject.Open "Driver={Microsoft Access Driver (*.mdb)};DBQ="&DBPath
  7. '建立資料庫存取物件       
  8.         Set RS=Server.CreateObject("ADODB.Recordset")
  9. '打開資料表       
  10. SQL = "Select * From 公佈欄 Order By 發言日期 Desc"
  11.         RS.Open SQL,conobject,1,3
  12. %>
  13. <HTML>
  14. <BODY>
  15. <h2 Align="Center"><img border="0" src="tit.gif"></h2>
  16. <TABLE Border=0 Cellspacing=5 width="100%">     
  17. <TR BgColor=#00FFFF>     
  18. <TD align="center" bgcolor="#0066FF" width="100%" colspan="3"><font color="#FFFFFF"><b>行政公告</b></font></TD>   
  19. </TR>   
  20. <% While not rs.eof%>   
  21.    <TR Valign=TOP>   
  22.    <TD NoWrap width="20%">   
  23.     <p align="center"><font size="2"><%=rs("發言日期")%></font></TD>   
  24.    <TD width="60%" bgcolor="#FFFFCC"><font size="2">
  25. <%=rs("內容")%></font></A></TD>   
  26.    <TD width="10%">   
  27.     <p align="center"><font size="2"><a href=mailto:<%=rs("email")%>><%=rs("單位")%></A></font></TD>   
  28.    </TR>   
  29. <%   
  30.    rs.MoveNext   
  31. Wend      
  32. %>   
  33. </TABLE>   
  34. <CENTER>   
  35. </CENTER>   
  36. <hr size="1" color="#0000FF">
  37. <form method="POST" action="addnews.asp">
  38.   <p align="center"><font size="2">輸入密碼:<input type="password" name="password" size="8">
  39.   <input type="submit" value="發佈公告" style="background-color: #0000FF; color: #FFFFFF; border-style: groove"></font></p>
  40. </form>
  41. </BODY>   
  42. </HTML>
複製代碼

作者: 小誌    時間: 2010-5-26 22:25

新公告發佈程式網頁

要在addnews.asp程式網頁的表單中填寫新公告事項內容,首先必須先驗證填寫者是否有發佈新公告的權利,怎麼驗證?在公佈欄程式網頁下方不是有一個填寫密碼的表單嗎?當表單中所填寫密碼傳送給新公告發佈程式網頁時,我們就先驗證一下密碼,如果密碼通過我們就秀出填寫新公告的表單,反之,若密碼驗證沒通過,我們就直接將網頁瀏覽連結轉向回行政公佈欄的Index.asp程式網頁:

[attach]1030[/attach]

密碼通過則就秀出填寫新公告的表單,共有三個填寫資料的欄位,一個『送出公告』的發送按鈕,如下圖所示:

[attach]1031[/attach]

提示:
在行政公佈欄的Index.asp程式網頁中,條列現有公告時不是還有一個公告發佈的『日期時間』欄位嗎?它從哪裡來的,別擔心!公告發佈的時間在公告資料寫入資料庫的時候就會自動建立了!


addnews.asp
  1. <%
  2. if Request("password")="test" then
  3. %>

  4. <HTML>
  5. <BODY>
  6. <h2 Align="Center"><img border="0" src="tit.gif"></h2>
  7. <TABLE Width="100%"><TR><TD Align=Center bgcolor=#000080>   
  8. <b><font color="#FFFFFF" size="2">發布新公告</font></b>   
  9. </TD></TR></TABLE>   
  10. <CENTER>   
  11. <FORM Action=add.asp Method=POST>   
  12. <TABLE Border="1" bgcolor="#FFCC66" bordercolor="#FF9933" cellspacing="0">   
  13. <TR><TD><font size="2">發佈單位:</font></TD>   
  14. <TD><font size="2"><INPUT Type="text" Size="30" Name="單位"></font></TD></TR>   
  15. <TR><TD><font size="2">聯絡信箱:</font></TD>   
  16. <TD><font size="2"><INPUT Type="text" Size="30" Name="Email">   
  17.   </font>   
  18. </TD></TR>   
  19. <TR><TD><font size="2">內容:</font></TD>   
  20. <TD><font size="2"><TEXTAREA Name="內容" Rows="8" Cols="60">
  21. </TEXTAREA></font></TD></TR>   
  22. </TABLE>   
  23. <INPUT Type="submit" Value="送出公告">   
  24. </FORM>   
  25. </CENTER>   
  26. </BODY>   
  27. </HTML>   
  28. <%
  29. else
  30. Response.Redirect "index.asp"
  31. End if
  32. %>  
複製代碼

作者: 小誌    時間: 2010-5-26 22:26

儲存新公告資料

在新公告表單中填寫好資料後,按下『送出公告』的發送按鈕,資料將傳送給add.asp程式處理,則接下來就是要將接收自『新公告表單』中的欄位資料寫入資料庫檔案中,如下圖所示:

[attach]1032[/attach]

注意:



add.asp
  1. <%
  2. '建立資料庫連結物件
  3.         Set conobject = Server.CreateObject("ADODB.Connection")
  4.         DBPath = Server.MapPath("news.mdb")
  5. '連結資料庫       
  6.         conobject.Open "Driver={Microsoft Access Driver (*.mdb)};DBQ="&DBPath
  7. '建立資料庫存取物件       
  8.         Set RS=Server.CreateObject("ADODB.Recordset")
  9. '打開資料表       
  10.         RS.Open "公佈欄",conobject,1,3
  11. '儲存資料        
  12.    rs.AddNew
  13.    rs("單位") = Request("單位")
  14.    rs("Email") = Request("Email")
  15.    rs("內容") = Request("內容")
  16.    rs.Update
  17. Response.Redirect "index.asp"
  18. %>  
複製代碼

作者: 小誌    時間: 2010-5-26 22:29

建立資料庫資料表

本範例將公告事項資料建立於Access資料庫中,這個資料庫我們定名為『news.mdb』,而在資料庫中用來儲存所有公告資料的資料表則定名為『公佈欄』。

在『公佈欄』資料表中,我們建立了四個欄位:Email(公告發佈單位的聯絡信箱)、單位(公告發佈單位)、內容(公告內容)、發言日期(公告發佈日期),其欄位設定說明如下:

[attach]1033[/attach]

提示:



(實戰專題) 行政公佈欄 完整範例壓縮檔:[attach]1034[/attach]
作者: woody00253    時間: 2012-9-23 21:29

不好意思,小誌大大,小弟有一些問題想跟你請教一下
最近小弟有在寫一個網頁,可是在網頁首頁的公告事項的部分,
事件發布之後,最新的消息都會被放在最後面,相反的最舊的消息會放在最前面,
想請問小誌大大,我這一個事件排放的問題,要如何才能解決......
作者: 小誌    時間: 2012-9-23 21:43

回復 6# woody00253


    在SQL命令中加入倒序排序
  1. select ....  order by 欄位名 desc
複製代碼

作者: c_c_lai    時間: 2012-9-24 08:58

回復 5# 小誌
謝謝您分享的好專題,我特意將它轉成 PDF 檔,當成備忘錄。
希望您不要介意!
[attach]12597[/attach]
作者: 小誌    時間: 2012-9-24 18:12

回復 8# c_c_lai


    當然好,而且您很細心,相關的論壇推廣連結都加上囉
非常感恩!!
作者: 小蟲弟    時間: 2013-10-15 14:02

小誌大大!!不好意思~想要請問需要下載這個檔案需要中學生的身分!請問要如何變成中學生呢?不好意思麻煩了!
作者: lin7556    時間: 2013-11-17 12:10

請問是用MDB去改欄位嗎?
作者: kung1598    時間: 2023-5-12 01:02

當然好,而且您很細心,相關的論壇推廣連結都加上囉非常謝謝




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)