• 沒有找到結果。

SendPswdState.jsp

在文檔中 二手樂器拍賣論壇之建構 (頁 93-0)

第四章 系統組織與架構

5.5 忘記密碼程式功能

5.5.3 SendPswdState.jsp

此程式主要是針對使用者所輸入的帳號與身分證字號狀 況來產生相對應的警告訊息。

程式會從 SendPswdDeal.jsp 處接收到三種不同的狀況,分別 為:帳號不存在、身分證字號不正確、及郵件發送成功三種 情況,前兩種狀況將會把頁面導至 SendPswd.jsp 要求使用者 重新輸入,後者則導向 Login.jsp 讓使用者在取得密碼後直 接可以登入。[圖 5.18]為 SendPswdState.jsp 程式流程圖。

開 始

[圖 5.18 SendPswdState.jsp 程式流程圖]

5.6 看會員資料程式功能

在這一部分的子系統中為 1 個程式,程式的說明及程式 流程如下:

5.6.1 UserDataShow.jsp

此程式的功能是提供會員瀏覽註冊時所填寫的所有資

資料瀏覽頁面,此時程式將會從[會員固定資料]、[會員可修 改資料]中將該使用者所有的資料以一個頁面整齊的排列顯 示出來,並會在未提供資料的地方特別註明且以紅色文字呈 現,讓使用者更清楚知道有什麼資料尚未填寫。[圖 5.19]為 UserDataShow.jsp 程式流程圖。

開始

顯示使用者 個人資訊 會員固

定資料 會員可修

改資料

結束

[圖 5.19 UserDataShow.jsp 程式流程圖]

5.7 販賣物品程式功能

在這一部分的子系統中分為 3 個程式,每一項程式的說 明及程式流程如下:

5.7.1 seller.jsp

這個程式是讓欲拍賣東西的使用者輸入想要賣的物品資

料,使用者輸入欄位可分為三大類,第一類是「賣方物品基 本資料」,是使用者必須要填入的部分(除照片上傳欄位之 外),包括物品分類、物品名稱、最佳交易地點、物品數目、

起標價格、出價增額、拍賣期限、物品描述、3 張照片上傳。

使用者若是有欄位未輸入,系統將會偵測,並提醒使用者哪 一欄位未輸入或輸入不正確,不符合規定,請使用者輸入正 確資料。第二類是「交易選項」,分為付費方式及交貨方式兩 部分。付費方式包含現金交易、接受支票或匯票、銀行或郵 局轉帳、接受信用卡、接受郵局貨到付款,可複選的選項。

交貨方式包含相約取貨、自行取貨、先付款再交貨、先交貨 後付款、一手交錢一手交貨、(郵寄) 買方付運費、(郵寄) 賣 方付運費,可複選選項。在這一類的選項中是經過我們觀察 大部分網路二手交易者最常使用的方式,因為在現在社會中 交易方式有多種管道,例如郵局所提供的貨到付款服務、轉 帳等。我們列出了這幾個選項讓使用者可複選使用者覺得較 便利的方式作交易。第三類是「特殊功能選項」,這一部分是 不限定要填入資料的,其包含了是否提出直接購買價、是否 要限制底價的欄位。這是要配合我們所設計的系統提供了一 些特別的功能的選項,如在拍賣過程中若賣方之前有輸入直

接購買價,買方便可以以直接購買價的價錢直接結束此物品

5.7.2 sellcheck.jsp

這一個程式是未了避免使用者因不注意而填入了錯誤的 物品訊息而設計,主要是顯示使用者在「seller.jsp」頁面 中所輸入的資料,且若使用者在「seller.jsp」中有選擇上 傳照片也可以在本頁面中瀏覽到,不至於誤傳了照片。當使

用者檢查過所顯示的資訊後,若選擇要修改,系統將回到

「seller.jsp」頁面讓使用者更正資料。若使用者確定資料 無誤後,系統將導至「sellerdataget.jsp」頁面處理。[圖 5.21]為 Sellcheck.jsp 程式流程圖。

開 始

使 用 者 檢 查 所 輸 入 訊 息 及 所

上 傳 圖 片

確 認 資 料 是 否 正 確

導 引 至

S e l l e r d a t a g e t . j s p 導 引 至 S e l l e r . j s p

結 束

修 改 正 確

[圖 5.21 Sellcheck.jsp 程式流程圖]

5.7.3 sellerdataget.jsp

這一程式的功能是將賣方所提供的物品訊息依據所選擇 的物品類別寫入相對應的賣方物品訊息資料表中,其包含了

類、其他類共八個資料表。[圖 5.22]為 sellerdataget.jsp 程式流程圖。

開 始

取 得 自 sellcheck.jsp傳 來

的 值

連 接 至 對 應 的 類 別 資 料 庫 並 寫 入

資 料 賣 方 物 品 訊

息 資 料 表

結 束

[圖 5.22 sellerdataget.jsp 程式流程圖]

5.8 出價程式功能

在這一部分的子系統中分為 11 個程式,每一程式的說明 及程式流程如下:

5.8.1 checkout-main-page.jsp

這個程式是讓想要買東西的使用者確認這個物品的詳細

訊息並決定要參加自動出價或者是要立刻買。

網頁會先顯示出物品的基本資料及說明,包括物品分類, 物品名稱,物品數目,起標價格,現在價格,出價增額等資料, 如果賣方在拍賣時有輸入立刻買價錢時,這個網頁就會動態 的產生出要立刻買的選項,若資料庫中沒有立刻買的價錢時, 則此立刻買按鈕並不會出現,而在此頁使用者如果要參加自 動出價的話,要先輸入對此物品的最高出價金額,以方便日後 自動出價系統的競標動作,此最高出價金額欄位有做前端的 資料檢查,包括 1.有沒有輸入資料 2.輸入的資料是不是數字, 以及 3.輸入的價格是否高於資料庫中的目前價格加上出價增 額。[圖 5.23]為 checkout-main-page.jsp 程式流程圖。

開始

[圖 5.23 checkout-main-page.jsp 程式流程圖]

5.8.2 checkout-check.jsp

這個程式是讓想要買東西的使用者確認這個物品的出價 價格訊息並讓使用者輸入帳號和密碼的頁面,然後會連到 BuyDeal.jsp去檢查使用者輸入的帳號密碼是否正確,如果使 用者忘記密碼時,則會連到SendPswd.jsp去讓系統用E-mail 送正確的密碼給使用者。[圖 5.24]為checkout-check.jsp程 式流程圖。

開 始

取 得 來 自 ch e ck o u t-m a in -p ag e.jsp

的 資 料

顯 示 出 物 品 種 類 ,名 稱 ,目 前 價 格 ,以 及 最

高 出 價 金 額

使 用 者 輸 入 帳 號 及 密 碼

導 入 到 B u y D e al.jsp

忘 記 密 碼

導 入 到 S en d P sw d .jsp

[圖 5.24 checkout-check.jsp 程式流程圖]

5.8.3 BuyDeal.jsp

這個程式是從 checkout-check.jsp 抓取使用者輸入的帳 號和密碼,並檢查其正確性,檢查方式是先抓出 Table[會員固 定資料]的結果集物件,然後再一筆一筆的比對有無此使用者, 並設定一個 check 變數,當 check=1 時代表帳號和密碼都正 確,check=2 時代表只有密碼錯誤,check=0 時代表帳號錯誤, 當帳號和密碼都是正確的時候就將網頁導入到 flag.jsp 中, 錯誤時就回到 checkout-check.jsp 中。[圖 5.25]為

BuyDeal.jsp 程式流程圖。 開 始

取 得 來 自 checkout.check.jsp的 帳

號 和 密 碼

會 員 固 定 資 料 讀 取 帳 號 密 碼

檢 查 帳 號 密 碼

正 確 錯 誤

將 網 頁 導 入 到 checkout-check.jsp中 將 網 頁 導 入 到 flag.jsp

[圖 5.25 BuyDeal.jsp 程式流程圖]

5.8.4 flag.jsp

這個程式是讓使用者確認完帳號密碼後,因為不可以同 時有兩個以上的人在更動資料庫,所以會利用此flag.jsp來 防止此事發生。

我 們 在 資 料 Table[ 賣 方 物 品 資 料 ] 中 新 増 三 個 欄 位 Flag1,Flag2,Flag3,當使用者要更動資料庫時,先去看 Flag1 是否有被改成 1,若沒有,則將 Flag1 改成 1,此時這個 user 就 搶到了 Flag1,接著再去搶 Flag2…以此類推。

當遇到有旗子已經被改成 1(代表已經被搶走)時,先把之 前已經改成 1 的 Flag 欄位改回 0,然後 flag.jsp 就連到 flag-failed.jsp 去 顯 示 出 資 料 庫 忙 碌 中 , 然 後 再 從 flag-failed.jsp 回到賣方物品主頁面 GoodsShow.jsp 中。

當三個旗子都搶到了後,代表現在沒有人在更動資料庫, 則此時就連到 checkout-success1.jsp 中去將出價紀錄存到 資料庫中。

以下是搶旗標流程演算法:

<1> 1.1 如果 Flag1 的值為 0:

=>將資料庫中 Flag1 的值改為 1

1.2 如果 Flag1 的值不為 0:

=>將網頁導向 flag-failed.jsp

<2> 2.1 如果 Flag2 的值為 0:

=>將資料庫中 Flag2 的值改為 1 2.2 如果 Flag2 的值不為 0:

=>1:將資料庫中的 Flag1 改回 0 =>2:將網頁導向 flag-failed.jsp

<3> 3.1 如果 Flag3 的值為 0:

=>將資料庫中 Flag3 的值改為 1,搶旗標成功!!!

=> 將 網 頁 導 向 checkout-success1.jsp, 並 在 checkout-success1.jsp 網頁完成資料庫的存入後, 將資料庫中的 Flag1,Flag2,Flag3 改回 0。

3.2 如果 Flag3 的值不為 0:

=> 1:將資料庫中的 Flag1,Flag2 改回 0 => 2:將網頁導向 flag-failed.jsp [圖 5.26]為 flag.jsp 程式流程圖。

開始

判斷Flag2值 值為1 值為0

將Flag1,Flag2 值為1 值改為0

將網頁導入 到checkout-success1.jsp

[圖 5.26 flag.jsp 程式流程圖]

5.8.5 flag-failed.jsp

這個程式主要是回應 flag.jsp 程式,當搶旗子動作失敗 時 ,flag-failed.jsp 就 顯 示 出 資 料 庫 忙 碌 中 , 然 後 再 從 flag-failed.jsp 回到賣方物品主頁面 GoodsShow.jsp 中讓 使用者再重新出價。[圖 5.27]為 flag-failed.jsp 程式流程 圖。

開 始

取 得 f l a g . j s p 的 物 品 種 類 和 物 品 編 號 變

顯 示 出 資 料 庫 忙 碌 中

將 網 頁 導 入 到 G o o d s S h o w . j s p 中

[圖 5.27 flag-failed.jsp 程式流程圖]

5.8.6 checkout-success1.jsp

這個程式主要是回應 flag.jsp 程式,當搶旗子動作成功 時,checkout-success1.jsp 就會將這次的交易紀錄更新到資

料庫中,被更動到的 Table 包括有[賣方物品資料]和[出價紀 錄]兩個 Table , 每次一有使用者出價時, checkout-

success1.jsp 就會比對現在出價的人的最高出價金額和資料 庫中這個物品的目前最高出價金額,會得到以下三種情形。

<1>現在出價的 user 的最高出價金額若比資料庫中的最高價 錢多時:

<1.1>則最新的物品目前價格此時又分兩種情形:

1: (user 出的最高價錢減掉資料庫中的最高價錢) >= (出 價增額)時:

則最新的物品目前價格等於資料庫中的最高價格加上出 價增額。

2: (user 出的最高價錢減掉資料庫中的最高價錢) < (出 價增額)時:

則最新的物品目前價格等於此 user 的最高出價。

<1.2>儲存[出價紀錄]。

<1.3>更新[賣方物品資料]。

<2>現在出價的 user 的最高出價金額若等於資料庫中的最高 價錢時:

<2.1>先出價者先贏,然後告訴他已有人出此價格。

<2.2>儲存[出價紀錄]。

<2.3>更新[賣方物品資料]。

<3>現在出價的 user 的最高出價金額若比資料庫中的最高價 錢少時:

<3.1>則最新的物品目前價格此時又分兩種情形:

1: (資料庫中的最高價錢減掉 user 出的最高價錢) >= (出 價增額)時:

則最新的物品目前價格等於 user 出的最高價錢加上出價 增額。

2: (資料庫中的最高價錢減掉 user 出的最高價錢) < (出 價增額)時:

則最新的物品目前價格等於資料庫中的最高價錢。

<3.2>儲存[出價紀錄]。

<3.3>更新[賣方物品資料]。

[圖 5.28]為 checkout-success1.jsp 程式流程圖。

開始

[圖 5.28 checkout-success1.jsp 程式流程圖]

5.8.7 checkout-success2.jsp

這個程式主要是回應 checkout-success1.jsp 更新完資 料庫後的後續動作,會告訴使用者出價已經完成,以及物品出 價過後的詳細訊息,包括有物品分類,物品名稱,上次價格,出 價增額,您的最高出價金額,您這次的出價價格等等的訊息。

[圖 5.29]為 checkout-success2.jsp 程式流程圖。

開 始

取 得 來 自 c h e c k o u t-s u c c e t-s t-s 2 .jt-s p

的 資 料

顯 示 出 價 已 經 完 成 的 訊 息 以 及 物 品 詳 細 資

返 回 到 G o o d s S h o w .js p

[圖 5.29 checkout-success2.jsp 程式流程圖]

5.8.8 buynow.jsp

當使用者在 checkout-main-page.jsp 中按下立刻買的的 按鈕時便會連到這一面,這一面會顯示出該物品的基本訊息 如名稱、數量、立刻買價錢。並會要求使用者輸入帳號與密 碼以作確認,使用者所輸入的帳號與密碼將連到

LoginDeal.jsp 程式作資料庫的比對。[圖 5.30]為 buynow.jsp 程式流程圖。

開 始

連 到 logindeal.jsp

顯 示 帳 號 密 碼

錯 誤 錯 誤

[圖 5.30 buynow.jsp 程式流程圖]

5.8.9 LoginDeal.jsp

此程式的主要功能是判斷 BuyNow.jsp 頁面使用者所輸入 的帳號密碼是否正確,以及錯誤時所對應的動作訊息。

此程式的主要功能是判斷 BuyNow.jsp 頁面使用者所輸入 的帳號密碼是否正確,以及錯誤時所對應的動作訊息。

在文檔中 二手樂器拍賣論壇之建構 (頁 93-0)

相關文件