會員系統在入口網站、社群網站、購物網站,或是公司網站,幾乎已經是不可缺少的功能,擁有會員系統可以讓網站提供個人化服務,管理者可以透過會員系統瞭解訪客的族群與瀏覽行為,增加訪客的忠誠度。藉由分析與研究搜集到的重要資訊,協助您做出網站的經營決策,達到增加訪客流量的目標。
會員系統功能需求
使用 Dreamweaver 製作會員系統非常簡單,使用內建的工具就可以完成基本的會員系統,而部份需要的功能(例如上傳圖片)也可以透過擴充程式製作。我們先來看看這個會員系統的功能需求。
會員系統可以讓訪客申請成為會員,使用網站上的會員服務時必須輸入帳號與密碼登入,並可修改資料與執行登出網站的功能。
會員資料儲存於 tb_user 資料表,會員資料表的欄位規劃如下:
欄位名稱 |
資料型態 |
說明 |
user_ID |
smallint |
會員編號 ( 主索引、自動編號 ) |
user_name |
varchar (20) |
會員帳號 |
user_pass |
varchar (20) |
登入密碼 |
user_nick |
varchar (20) |
會員暱稱 |
user_mail |
varchar (30) |
電子郵件 |
user_sex |
tinyint (1) |
會員性別 ( 1 = 男 / 0 = 女 ) |
user_mobile |
varchar (20) |
行動電話 |
signup_date |
date |
註冊日期 |
會員系統網頁規劃
網頁說明 |
檔案名稱 |
說明 |
網站首頁 |
index.php |
註冊連結 / 修改資料 / 登出 |
註冊會員 |
signup.php |
註冊會員時填寫資料的網頁 |
註冊成功 |
|
註冊完成後出現的歡迎網頁 |
重複註冊 |
|
註冊帳號若重複出現的訊息 |
登入成功 |
|
登入會員成功時出現的訊息 |
登入失敗 |
|
帳號密碼錯誤時出現的訊息 |
限制存取 |
access_denied.php |
未登入時將自動導向此頁 |
修改資料 |
user_edit.php |
提供會員修改資料的網頁 |
刪除會員 |
user_del.php |
管理者執行刪除會員的網頁 |
建立會員系統資料表
使用 phpMyAdmin 建立儲存會員資料的 tb_user 資料表。
設定會員資料表的欄位。
製作申請會員的網頁
首先製作申請會員的網頁,主要是透過表單讓訪客填寫資料,並且可將資料插入 tb_user 會員資料表。舊版 Dreamweaver 提供的表單驗證功能太簡單,以往經常需要安裝擴充程式,現在我們可以使用 Dreamweaver 提供的「Spry 表單檢驗工具集」來提供較完整的表單驗證功能。
請您先建立一個新網頁,並將檔名設定為 signup.php,網頁上的表單讓訪客填寫會員帳號、電子信箱、性別等相關資料,有的網站會讓訪客自行設定密碼,有些網站則是產生隨機的密碼,並寄送到訪客的電子信箱驗證填寫的資料是否正確。由於寄送郵件必須透過 SMTP 服務需要伺服器支援,先讓訪客自行設定登入的密碼。
使用 Dreamweaver 的表單工具建立所需的欄位,表單欄位的名稱與資料表的欄位名稱相同。
性別的選項按鈕,可以使用 Spry 驗證選項按鈕群組製作。
開啟「記錄插入表單」對話框,連線選擇「conn_mysql」,表格選擇「tb_user」。
「插入後,請前往」是訪客申請會員之後顯示的網頁,我們先輸入join_ok.php,稍後再製作這個網頁。
提示:您也可以使用 Dreamweaver 提供的「記錄插入表單精靈」製作加入會員的表單,以節省製作時間。
預設的表單標籤是從 tb_user 資料表取得的,標籤文字可以修改為中文或稍後從編輯視窗修改。
需注意 user_ID 會員編號是 MySQL 資料庫自動產生的,無需插入資料,因此先將此欄移除。
user_sex 性別則顯示為選項按鈕群組。
性別欄位使用選項按鈕群組。
記錄會員加入日期的 registration_date 欄位也是隱藏欄位,不需要訪客自行輸入,預設值輸入程式碼自動取得伺服器的系統日期。
需要在網頁上使用 session 變數的功能時,必須在網頁原始碼的第一行輸入:
<?php session_start();
?>
注意:變數名稱大小寫輸入錯誤會出現錯誤訊息,因為 PHP 的變數名稱有區分大小寫。並請在新增資料集之後再加上這段程式碼,否則將被移到資料集程式碼的下方,而導致 session 變數無法正常使用的情形。
會員系統製作流程
首先修改網站首頁,進入網站時首頁會顯示表單讓訪客輸入帳號與密碼,在登入之後,原本帳號與密碼的表單欄位消失,取而代之的是歡迎光臨的訊息,並可讓會員修改個人資料、前往會員專屬網頁或登出網站。事實上無論訪客登入與否,都是看到相同的網頁,只是部份的內容會依訪客登入的狀態,顯示不同的訊息。
我們在網頁加上兩個區塊,分別製作「登入前」與「登入後」的內容:
登入前:「加入會員」按鈕連結到加入會員的網頁。
登入後:「修改會員資料」連結到網頁可修改個人資料。
避免訪客輸入錯誤的密碼
訪客申請網站會員時可以自行設定密碼,不過密碼欄位填寫時只會顯示 * 或 ● 字元,訪客可能輸入錯誤而未發現,申請完成後就會無法登入,最好加上密碼確認的功能。您可以使用 Dreamweaver 表單欄位比對的功能,或是安裝 Check form 擴充程式。
表單製作完成後,在「伺服器行為」面版點選新增「插入記錄」。
檢查表單與資料表欄位的對應是否正確。
避免訪客申請相同的帳號
目前還沒有檢查帳號是否重複的功能,因此訪客們申請會員時可能產生帳號重複,這將會導致會員登入錯誤的問題,為了避免申請重複的帳號,請再點選 [ 新增 > 使用者驗證 > 檢查新使用者名稱 ] 。
開啟首頁 index.php , 在「伺服器行為」面版點選「登入使用者」… 。
登入成功時,我們設定回到首頁。若訪客輸入的會員帳號不存在或密碼錯誤,需要顯示錯誤訊息。
MM_Username <---- 放入使用者名稱 ( user_name )
為了讓首頁可以判別登入的訪客身份,必須依訪客登入時建立的 session 變數進行篩選,請先建立資料集,資料集名稱訂為 rs_user , 連線到網站資料庫的 tb_user 資料表,查詢 user_name 會員帳號與 user_nick 暱稱欄位,登入後要製作顯示會員姓名或暱稱的歡迎訊息。
篩選器設定 memberName 欄位等 於 session 變數 MM_Username ,實際上 MM_Username 是登入後自動建立的 session 變數,這是 Dreamweaver 製作會員系統時內定的名稱,注意輸入時大小寫必須完全相 符,否則會找不到對應的會員帳號。接著可點選「測試」鈕,並在測試值欄位輸入在資料庫中已存在的會員帳號,應該會找到會員的相關記錄,若找不到記錄或找到多筆記錄的話,請檢查前面的步驟是否有錯。
製作會員登入的功能
網站在首頁提供會員登入的功能,登入前與登入後網頁顯示的內容不同,我們需要分別製作登入前後的區塊。
|
登入前 |
|
登入後 |
|
顯示帳號與密碼欄位 |
|
顯示歡迎光臨的訊息 |
|
顯示加入會員的連結 |
|
修改個人資料的功能 |
|
|
|
顯示登出網站的功能 |
|
|
|
|
開啟「伺服器行為」面板,點選「新增 > 使用者驗證 > 登入使用者」,對話框設定。
輸入來源表單:form1 ( 若有修改表單名稱請自行變更 )
使用者名稱欄位:
密碼欄位:
顯示會員暱稱
選取網頁上的文字「會員暱稱」,接著在「繫結」面板點選 rs_member 資料集前的加號,選擇 memberNick 欄位後,按下方的「插入」按鈕,即可將網頁上的文字替換為正確的會員暱稱。
Dreamweaver 設計檢視的網頁上顯示 {rs_member.memberNick} 代表來自 rs_member 資料集的 user_nick 欄位。
實際的 PHP 程式碼為
<?php echo $row_rs_member['user_nick']; ?>
建立資料集,查詢會員的名稱,歡迎光臨!
製作會員登出的功能
登出網站的功能有兩種方式:按下網頁的連結時登出,或是進入網頁時登出。
我們使用按下連結時登出,而在會員登入或登出之後,再回到網站的首頁即可。
製作會員登出,從伺服器行為面板選擇 [ 新增 > 使用者驗證 > 登出使用者 ] 。
完成作業時,請前往選擇 index.php 網頁。
製作修改會員資料的功能
會員登入與登出的功能完成後,我們繼續製作修改會員資料的功能,因為會員可能會更換 Email信箱、電話號碼與地址,若是未提供修改資料的功能,會員就無法更新正確的資料。新增一個空白網頁並將檔案名稱改為「user_edit.php」,建立資料集來查詢會員資料,篩選器設定 user_name 欄位等於 Session 變數「MM_Username」,即可辨識會員的身份。
開啟瀏覽器檢視網頁時若是沒有顯示會員的資料,表示可能沒有啟用 Session 變數功能,因為資料集的篩選需要 session 變數,請把 <?php session_start(); ?> 加到原始碼第一行(若是可正確顯示會員資料則可跳過此步驟)。
修改會員資料的網頁,也需要檢查是否登入。
修改性別,性別是選項按鈕,與文字欄位的作法稍有不同,請選取任一選項按鈕,點選屬性列的「動態」按鈕即可開啟「動態選項按鈕群組」對話框。
按下閃電圖示按鈕後,選擇資料集 rs_member 下方的 memberSex 按鈕。
再按下「確定」按鈕。
加入 memberID 隱藏欄位,因為更新記錄需要使用「主索引鍵」。
接著在「伺服器行為」面板,按下 [ 新增 > 更新記錄 ] 。
更新後前往 member_modify_ok.php 網頁,顯示會員資料已更新的訊息。
限制存取頁面
會員若是沒有輸入帳號與密碼,將無法使用需要登入網站的一些功能(例如修改個人資料或是在討論區發言等)。即使訪客在瀏覽器直接輸入位址企圖跳過驗證,也必須讓他們無法檢視網頁的內容,重新導向到登入的網頁。注意!在您的網站中若是有許多網頁需要驗證,請在這些網頁分別加上「限制存取頁面」。
開啟需要會員登入才能檢視的頁面,點選 [ 新增 > 使用者驗證 > 限制存取頁面 ] 。
限制存取頁面的準則可以是使用者名稱與密碼,或是再加上存取層級,讓您的網站可以擁有不同的會員等級。
如果訪客沒有登入,而嘗試在瀏覽直接器輸入位址,就會自動導向到 access_denied.php 網頁。
製作網站會員的管理功能
製作網站會員的後端管理頁,主要的功能是讓網站管理者可以修改或刪除會員資料。
新增網頁,並檔案的名稱命名為 member_list.php。此網頁需要列出全部的會員,請先建立 rs_members 資料集。
接著將資料集的欄位逐一放在網頁的適當位置,並使用表格排版。
目前僅顯示一筆會員資料,必須透過重複區域的方式顯示所有的會員。
選取表格的一列,從「伺服器行為」面板點選 [ 新增 > 重複區域 ] 。
★DWCS5_PHP_MS_List_RepeatRegion.gif
實際資料集為 rs_members
★DWCS5_PHP_RecordsetNavigation_02.gif
顯示記錄總數
★DWCS5_PHP_MS_TotalRecords_02.gif
輸入「目前共有 N 位會員」的文字,網站管理者經常需要掌握會員的數量。
製作刪除會員的功能,點選「參數」按鈕
參數對話框
★DWCS5_PHP_MS_Delete_memberID_01.jpg
動態資料對話框,選取 memberID 欄位
★DWCS5_PHP_MS_Delete_memberID_02.jpg
名稱、值 設定完成後按「確定」按鈕
★DWCS5_PHP_MS_Delete_memberID_03.jpg
URL
製作刪除會員的功能
提供網站的管理人員刪除會員的功能,先新增以下的空白網頁,稍後會說明製作步驟。
刪除會員 member_delete.php
確認刪除 member_delete_confirm.php
刪除會員的功能是從 member_list.php 傳遞過來的 URL 參數判斷要刪除的會員編號,因此篩選器設定為 memberID 等於 URL 參數 memberID。
★DWCS5_PHP_MS_Recordset_Admin.gif
★DWCS5_PHP_MS_Delete_Record.jpg
實際操作後您可能已經發現,刪除記錄時完全沒有確認的步驟,會員一旦刪除是無法救回的,您可以安裝 Confirm Links 擴充程式,避免發生管理者誤按刪除而造成無法挽回的問題。
提示:您可以從 Tom Muck 官方網站 ( http://www.tom-muck.com ) 下載 confirmlinks.mxp 擴充程式。
改進網頁的顯示方式
性別的部份使用「1∕0」儲存在資料庫,是為了節省儲存空與維持資料庫執行效能,然而網頁上若是可以顯示為「男∕女」將更容易理解。這個部份可以透過 Dreamweaver 的擴充程式來製作。
Advanced Conditional Region 2.0 - 按此下載 |
PHP Show If Recordset Field Condition Is True - 按此下載 |
隨著會員的數量增加,管理網頁將會需要分頁的功能,可是 Dreamweaver 的資料集導覽列工具只提供上一頁、下一頁的連結,頁數太多時並不好用,若想製作頁碼連結,可以使用擴充程式(例如 Navigation Builder、Recordset Navigation Suite)製作導覽頁面的分頁連結。
注意!前往 next 下一頁或是 previous 上一頁的文字若在 Navigation Builder 改成中文的話,網頁上可能會出現亂碼。
請按「確定」加入 PHP 程式碼,再切換到程式碼檢視修改。
限制存取後端管理網頁
後端管理界面只有網站管理者可以使用,必須再加上限制存取的功能,即使一般訪客猜得到後端管理網頁的網址,進入網頁時也將自動導向到另一個網頁。這部份與前面製作的修改會員資料網頁相同。 |