第四章 程式設計與實作
4.1 刊登貨品子系統
刊登貨品子系統主要是將刊登貨品作業予以電腦化,以降低 刊登販賣二手物品作業的複雜度,並藉此提高作業的效率。更能 避免人工作業所產生的輸入或管理錯誤,以提高資訊的正確性;
其中在刊登的部分更提供了多樣分類刊登功能,使病患能自行前 往多媒體拍賣鏈結進行刊登及購買的作業,以解決為了要買二手 貨品而要到處東奔西跑的辛勞(例如:買二手電視要去中古家電 行,買中古機車要到機車行…)。
2. 解決問題
(1) 避免人工作業產生輸入或計算錯誤。
(2) 免除紙式紀錄保存問題。
(3) 方便資料調閱。
(4) 避免東奔西跑的辛勞。
3.操作畫面
在首頁的左方點選貨物登記,就可以進入本網頁,如下圖:
貨物登記網頁
接下來請依序輸入要拍賣貨物的資料:
貨物資料網頁
請記得每一項都記得要選取,為了便利別位使用者更加方便於聯 絡您以及了解您的貨物,如果沒有好好選取的話系統可是會出現 警示訊息的:
選取錯誤畫面
theForm.goods.focus();
return (false);
}
if (theForm.goods.value.length > 50) {
alert("\"kind\" 選項中,只能選出一項。");
return (false);
}
if (theForm.name.value == "") {
alert("請在 \"name\" 欄位輸入一數值。");
theForm.name.focus();
return (false);
}
if (theForm.name.value.length > 30) {
alert("在 \"name\" 欄位,最多請輸入 30 的字元。");
theForm.name.focus();
return (false);
}
var radioSelected = false;
for (i = 0; i < theForm.trademode.length; i++)
nbuyorsell = request("buyorsell")
ngoods = request("goods")
ntelephone = request("telephone") nbbcall = request("bbcall")
nicq = request("icq") noicq = request("oicq")
ntrademode = request("trademode") ncontent = request("content")
if ngoods="" or nname="" or nkind="" or nbuyorsell="" then response.write "<p align='center'> 沒有輸入必須項目。</p>"
response.write "<meta http-equiv='refresh' content='1; url=add.asp'>"
else
connstr =
"DBQ="+server.mappath("data.mdb")+";DefaultDir=;DRIVER={Micros oft Access Driver (*.mdb)};"
Set DataConn = Server.CreateObject("ADODB.Connection") dataconn.open connstr
Set InsertCursor = Server.CreateObject("ADODB.Recordset") Set cmdTemp = Server.CreateObject("ADODB.Command")
cmdTemp.CommandText = " select * from data where (goods IS NULL) "
cmdTemp.CommandType = 1
Set cmdTemp.ActiveConnection = dataconn InsertCursor.Open cmdTemp, , 1, 3
InsertCursor.AddNew
InsertCursor("buyorsell") = nbuyorsell InsertCursor("date") = date()
InsertCursor("time") = time() InsertCursor("goods") = ngoods InsertCursor("kind") = nkind
InsertCursor("price") = nprice InsertCursor("amount") = namount InsertCursor("degree") = ndegree InsertCursor("buydate") = nbuydate InsertCursor("name") = nname InsertCursor("email") = nemail InsertCursor("province") = nprovince InsertCursor("city") = ncity
InsertCursor("telephone") = ntelephone InsertCursor("bbcall") = nbbcall
InsertCursor("icq") = nicq InsertCursor("oicq") = noicq
InsertCursor("trademode") = ntrademode InsertCursor("content") = ncontent
InsertCursor("num") = 0 InsertCursor("deal") = 0 InsertCursor.Update InsertCursor.close dataconn.close
set InsertCursor=nothing set dataconn=nothing
寫入資料庫之後就會顯示刊登貨物成功的畫面:
刊登貨物成功畫面
接下來就會自動導向到同一個販賣分類的物品去了:
貨物分類網頁
刊登成功的同時當然資料庫也會新增一筆資料:
貨物資料庫網頁
而刊登成功之後,在首頁也會出現最新更新物品,最近 20 項最新 刊登的物品都將會顯示在首頁上,首頁上中間的正上方都是:
首頁可以刊登出最新的 20 項物品,其主要的運用程式碼如下:
do while (i<21) response.write "<span style='letter-spacing:1'><img
src='NOTE.GIF'>"+cstr(rs("buyorsell"))+""
response.write " <a
href='item.ASP?id="+cstr(Rs("ID"))+"')>"
response.write Rs("goods")+"</A></font></span><br>"
Rs.movenext i=i+1
loop
4.2 會員管理二手論壇子系統 1.系統目的
登入系統的目的主要是限制使用者的權限,在這個網站中,
論壇可以說是一個網站的精華所在,來自四面八方的意見以及精 華通通都匯集在這邊,論壇之中不希望有無聊份子去裡面打廣告 還有發表一些無聊的文章,因此設立了權限設定,想要進入論壇 必須要登入才可以,此外並可以防止使用者直接記下論壇的網址 直接進入,保有論壇的專業乃是登入系統的目的。
2.解決問題
(1)避免無聊人士來這邊發表無聊文章
(2)避免有心人士直接記下論壇的網址而前往論壇發言或瀏覽
3.操作畫面
從首頁的左方的二手論壇點選即可登入(藍色的那個):
然後進入登入畫面,,不論是使用者或是 Master 都只要在空格之 中填入您的帳號還有密碼再按下登入即可,如下所示:
不過隨著權限的不同,可能會導向到不同的網頁,可以分為一般 使用者還有 Master 的權限,以下是一般使用者的畫面:
以下是 Master 的畫面:
我們運用以下的程式碼來區分您為一般使用者或是 Master:
<%
Id = Trim (Request("Id"))
Password = Trim (Request("Password")) If (Id="" Or Password="") then
Set objRS = GetSQLRecordset(strSQL, "data.mdb", "Users") If objRS.EOF Then
Response.Cookies("Id") = Id
Response.Cookies("Password") = Password Response.Cookies("Passed") = "Passed"
If Request.Cookies("Id")="master" Then
If Request.Cookies("Password")="master" Then Response.Redirect "master.asp"
Response.End End If
End If
Response.Redirect "main.asp"
%>
登入成功之後的畫面如下,我們以 Master 的畫面來做分析,首先 先說明只有 Master 才能使用的功能,請點選下圖中的"站長專用 區":
進入站長專用區之後,我們將會導向到以下的畫面,在這個畫面 我們可以刪除拍賣的資料記錄,站台上每個人都可以新增物品,
但是刪除這個權限唯有站長才有:
此時進入這個畫面我們可以瀏覽所有刊登物品的資料,當然也可 以瀏覽該物品的物主的相關資料如 email,聯絡方式等等,在這個 畫面我們可以直接寄信給使用者詢問他這篇買賣的目的,若是決 定了要刪除哪一項物品只要點選該物品的 id 即可,說穿了只是加 個權限到刪除資料庫這個動作而已,但是對於一般使用者而言,
也許還是做成以下的人機介面會比較好,以下是點選刪除某個 id 之後的畫面:
當出現這個網頁的時候,就表示該筆資料已經刪除了,而我們刪 除這筆資料的運用的程式碼如下:
<%
connstr =
"DBQ="+server.mappath("data.mdb")+";DefaultDir=;DRIVER={Micros oft Access Driver (*.mdb)};"
Set DataConn = Server.CreateObject("ADODB.Connection") dataconn.open connstr
Set rs = dataconn.execute("delete * from data WHERE id="
+Cstr(request("id"))) dataconn.close
%>
我們接下來解說修改會員資料部分,請點選下方的〈修改會員資 料〉:
然後我們會進入以下的畫面,可以實際的來修改會員的資料:
我們運用以下的程式碼來做修改會員資料的執行:
<!-- #include file="ADOFunctions.asp" -->
<%
If Not Request.Cookies("Passed")="Passed" Then Response.Redirect "index.htm"
Response.End End If
Id = Request.Cookies("Id") Dim strSQL, objRS
strSQL = "Select * From Users Where Id='" & Id & "'"
Set objRS = GetSQLRecordset(strSQL, "data.mdb", "Users")
%>
<P ALIGN="CENTER"><IMG SRC="Modify.jpg"></P>
<FORM METHOD="POST" ACTION="Revise.asp" >
<TABLE BORDER="2" ALIGN="CENTER"
<TD><% =objRS("Id") %></TD>
VALUE="<% = objRS("Password") %>">
(請使用英文或數字鍵,勿使用特殊字元)
SIZE="15" VALUE="<% = objRS("Password") %>">
(再輸入一次密碼,並記下您的使用者名稱與密碼) </TD>
</TR>
<TR BGCOLOR="#99FF99">
<TD ALIGN="RIGHT">*姓名:</TD>
<TD><INPUT TYPE="TEXT" NAME="Name" SIZE="8"
VALUE="<% = objRS("Name") %>"></TD>
</TR>
VALUE="<% = objRS("Year") %>">年
<INPUT TYPE="TEXT" NAME="Month" SIZE="2"
VALUE="<% = objRS("Month") %>">月
<INPUT TYPE="TEXT" NAME="Day" SIZE="2"
VALUE="<% = objRS("Day") %>">日 </TD>
VALUE="<% = objRS("TelPhone") %>">
(依照 (02) 2311-3836 格式 or (04) 657-4587)
VALUE="<% = objRS("CellPhone") %>">
(依照 (0922) 302-228 格式)
</TD>
</TR>
<TR BGCOLOR="#99FF99">
<TD ALIGN="RIGHT">地址:</TD>
<TD><INPUT TYPE="TEXT" NAME="Address"
SIZE="45" VALUE="<% = objRS("Address") %>"></TD>
</TR>
<TR BGCOLOR="#99FF99">
<TD ALIGN="RIGHT">E-mail 帳號:</TD>
<TD><INPUT TYPE="TEXT" NAME="Email" SIZE="30"
VALUE="<% = objRS("Email") %>"></TD>
</TR>
<TR BGCOLOR="#99FF99">
<TD ALIGN="RIGHT">個人網站:</TD>
<TD><INPUT TYPE="TEXT" NAME="Url" SIZE="40"
VALUE="<% = objRS("Url") %>"></TD>
</TR>
<TR BGCOLOR="#99FF99">
<TD ALIGN="RIGHT">備註:</TD>
<TD><TEXTAREA NAME="Comment" ROWS="4"
COLS="45"><% = objRS("Comment") %></TEXTAREA></TD>
</TR>
</HTML>
以下為修改會員資料成功的畫面,並且我們此時點選下圖中的
〈回到會員區〉:
我們點選以下的進入二手論壇即可進入二手論壇,只有能夠登入 的人能進入論壇而已,我們將把論壇的設計與實作於下一個章節 中討論。
然後我們回到登入的那個畫面去做〈加入會員〉的功能:
點選加入會員之後就會進入以下的畫面,請注意以下的畫面和修 改會員資料那個圖雖然很類似但是其實有些關鍵性的不同,就是 此時我們可以取一個自己喜歡的帳號名稱,在修改會員資料的時 候是不允許這麼做的,如下:
我們運用以下程式碼來作存取加入會員資料的動作,並且我們在 加入會員的程式碼的部分另外加上了偵錯的功能,像是使用者帳 號和密碼一定要寫,不然以後怎麼登入,使用者帳號不要太長,
因為資料庫中使用者帳號的長度最多是十個字元,密碼的確認也 是一定要的,不然打錯了密碼還不曉得,下次要登入的時候麻煩 可就大了,還有像是姓名、出生年月日也都不可為空,並且還會 偵測每個月的日期,像是大月有 31 天,小月 30 天,還有全年只 有 12 個月,不會出現地 13、14 個月的偵測:
<HTML>
<HEAD>
<TITLE>加入會員</TITLE>
<META HTTP-EQUIV="CONTENT-TYPE"
CONTENT="TEXT/HTML; CHARSET=BIG5">
</HEAD>
<SCRIPT LANGUAGE="VBSCRIPT">
<!--
If Len(Attend.Password.Value) > 10 Then
Window.Alert "您忘了填「出生年」欄位了..."
Exit sub End If
If Cint(Attend.Day.Value) = 29 Then
Answer = MsgBox ("二月通常只有 28 天,您真的是 "
& Attend.Day.Value & " 日生的嗎?", 52) If Answer = 7 Then Exit sub
Window.Alert "1 月、3 月、5 月、7 月、8 月、10 月、
<P ALIGN="CENTER"><font size="7">加入會員</font></P>
<FORM NAME="Attend" METHOD="POST"
ACTION="Addmember.asp" >
<TABLE BORDER="2" ALIGN="CENTER"
BORDERCOLOR="#6666FF">
<TD ALIGN="RIGHT">*密碼確認:</TD>
<TD ALIGN="RIGHT">*生日:</TD>
<TD ALIGN="RIGHT">地址:</TD>
<TR BGCOLOR="#99FF99">
<TD ALIGN="CENTER" COLSPAN="2">
<INPUT TYPE="BUTTON" VALUE="加入會員"
ONCLICK="Checkdata">
<INPUT TYPE="RESET" VALUE="重新填寫">
</TD>
</TR>
</TABLE>
</FORM>
</BODY>
</HTML>
當一切的輸入符合程式需求的時候,使用者將被允許加入會員,
而資料庫也會加入一筆新的資料,如下:
另外建有查詢密碼的功能,若是忘記密碼的話,系統可以提醒你
密碼,請在登入的首頁點選〈查詢密碼〉,如下圖:
之後我們將會進入查詢密碼的網頁,請在姓名以及 email 欄位填 入當初註冊時所使用的資料,並且選擇系統告知您密碼的途徑,
是網頁顯示或是 email 通知,選好了之後按下〈傳送〉的按鍵,
如下:
經由以下的程式碼檢測,我們將來檢查這位使用者的姓名還有信 箱是否正確:
<%
Name = Trim (Request("Name")) Email = Trim (Request("Email"))
ShowMethod = Request("ShowMethod")
Dim strSQL, objRS
strSQL = "Select * From Users Where Name='" & Name & "'"
strSQL = strSQL & " And Email = '" & Email & "'"
Set objRS = GetSQLRecordset(strSQL, "data.mdb", "Users")
If objRS.EOF Then
objMail.Send
Response.Write "您的帳號及密碼已經寄到 " &
objRS("Email") & " 信箱了。"
Response.Write "<CENTER><A HREF='Index.htm'>登入本站
</A></CENTER>"
End If End If
%>
經過程式碼的檢驗之後,我們得到以下的結果:
4.3 二手論壇子系統
2.解決問題
(1) 提升整理資料時的方便性以及效率 (2)免除紙式保存的問題
(3)免去會合大眾集合的程序即可討論 (4)方便資料調閱
3.操作畫面
在上一個章節我們所提及的,請在以下的畫面點選〈進入二 手論壇〉,就可以進入了!(當然要先登入囉):
點選了之後我們就會進入以下的畫面:
接下來我們輸入適當的內容在〈作者〉〈主題〉〈內容〉之中,填 好了之後我們按下〈張貼留言〉如下:
接著我們運用以下程式碼來做這些留言的處理,此時資料庫也將 會新增一筆資料,另外,以下程式碼比較值得注意的就是開頭 的地方有加入防止不當的使用者借由直接記下網址的方式來 進入二手論壇,如下:
<%
If Not Request.Cookies("Passed")="Passed" Then Response.Redirect "index.htm"
Response.End
Response.End