Presentation is loading. Please wait.

Presentation is loading. Please wait.

第11章 會員管理系統實作.

Similar presentations


Presentation on theme: "第11章 會員管理系統實作."— Presentation transcript:

1 第11章 會員管理系統實作

2 大綱 會員管理系統 開發文件撰寫 開發實作 資料庫規劃 程式撰寫 結論

3 會員管理系統 本次實作的目標是建立一基本的會員管理系統,因應避免混淆,達到最精準的學習效果。故僅透過最簡單的NotePad記事本編輯軟體與MySQL Command Line Client進行實作。 本系統包含包含以下功能: 會員登入 會員註冊 會員修改自身資料 管理者刪除會員資料 管理者修改會員資料

4 開發文件撰寫 SA:系統架構圖

5 開發文件撰寫 Cont. SA:功能模組

6 開發文件撰寫 Cont. SD:模組流程

7 開發文件撰寫 Cont. SD:資料庫架構

8 資料庫規劃 SQL Script 建立example資料庫 建立member資料表 並建立adm/adm123456管理者
create database example; use example; create table member(serial int unsigned not null primary key auto_increment,id varchar(30) unique key not null ,passwd varchar(20) not null,status int unsigned not null, rank int unsigned not null); insert into member values('','adm','adm123456',1,100); 建立example資料庫 建立member資料表 並建立adm/adm123456管理者

9 資料庫規劃操作

10 程式撰寫 公用程式 功能模組 會員登入 會員註冊 會員修改自身資料 管理者刪除會員資料 管理者修改會員資料

11 公用程式 本專案使用『資料庫連線』與『網頁重導向』兩個公用程式。 資料庫連線 網頁重導向 sql_connect.php
用於每一網頁連接資料庫之用 網頁重導向 my_msg.php 用於每一網頁轉向

12 sql_connect.php <? /* Connecting, selecting database */
$link = mysql_connect('localhost', 'root', '123456') or die("Could not connect : " . mysql_error()); //echo "Connected successfully"; mysql_select_db("example") or die("Could not select database"); ?>

13 my_msg.php <? Function my_header($redirect){
echo "<script language=\"javascript\">"; echo "location.href='".$redirect."'"; echo "</script>"; return; } Function my_msg($msg,$redirect){ echo "<SCRIPT Language=javascript>"; echo "window.alert('".$msg."')"; echo "</SCRIPT>"; ?>

14 會員註冊:表單 (節錄) add.html ….. <form name="form1" action=add_chk.php method=post> <p align="center">請輸入您要使用的帳號:<input type="text" name="id"></p> <p align="center">請輸入您要使用的密碼:<input type="password" name="passwd"></p> <p align="center">請重複輸入您的密碼以確認:<input type="password" name="repasswd"></p> <p align="center"><input type="submit" name="送出"><input type="reset" name="重設"></p> </form> ….

15 會員註冊:判斷程式(節錄) add_chk.php
<? include_once("sql_connect.php"); include_once("my_msg.php"); ?>

16 會員註冊:判斷程式(節錄) add_chk.php
<? //檢核資料 if($_POST['id']=='' or $_POST['passwd']=='' or $_POST['repasswd']==''){ my_msg("欄位不可空白","add.html"); } if($_POST['passwd']!=$_POST['repasswd']){ my_msg("密碼並不相符,需重複鍵入相同密碼以確認","add.html");

17 會員註冊:判斷程式(節錄) add_chk.php
$sqlstr="insert into member values('', '".$_POST['id']."', '".$_POST['passwd']."', 1,1)"; //組合 sql $result=mysql_query($sqlstr,$link); //執行 sql //跳至檢視頁 my_msg("新增使用者成功,請以此使用者帳號/密碼重新登入","login.html"); mysql_free_result($result); mysql_close($link); ?>

18 會員註冊:說明 在表單中送出id、passwd與repasswd三個變數 在判斷程式中 檢查所有欄位是否空白 檢查重複輸入密碼是否相同
組合成insert子句並執行

19 會員註冊:執行畫面

20 會員登入:表單(節錄) login.html
<form name="form1" action=login_chk.php method=post> <p align="center">請輸入您的帳號:<input type="text" name="id"></p> <p align="center">請輸入您的密碼:<input type="password" name="passwd"></p> <p align="center"><input type="submit" name="送出"><input type="reset" name="重設"></p> </form>

21 會員登入:判斷程式(節錄) login_chk.php
if($_POST['id']=='' or $_POST['passwd']==''){ my_msg("欄位不可空白","login.html"); } $sqlstr="select * from member where id ='".$_POST['id']."' and passwd = '".$_POST['passwd']."' and status = 1"; $result = mysql_query($sqlstr,$link);  … 

22 會員登入:判斷程式(節錄) login_chk.php
$row = mysql_fetch_array($result, MYSQL_BOTH); if(mysql_num_rows ($result)==1 && $row["rank"]==100){ setcookie("cookie_chk", "adm_logined"); setcookie("cookie_id", $_POST['id']); my_header("adm.php");// 管理者登入 }elseif(mysql_num_rows ($result)==1 && $row["rank"]==1){ setcookie("cookie_chk", "logined"); my_header("main.php");// 會員登入 }else{ my_msg("登入失敗,請重新登入","login.html"); }

23 會員登入:說明 在表單中送出id、passwd兩個變數 在判斷程式中 檢查所有欄位是否空白 組合成select子句並執行
檢查傳回結果總行數是否為1

24 會員登入:執行畫面

25 會員修改資料:表單(節錄) mod.html
<form name="form1" action=mod_chk.php method=post> <p align="center">請輸入新的密碼:<input type="password" name="passwd"></p> <p align="center">請重複輸入新的以確認:<input type="password" name="repasswd"></p> <p align="center"><input type="submit" name="送出"><input type="reset" name="重設"></p> </form>

26 會員修改資料:判斷程式(節錄) mod_chk.php
…. if($_POST['passwd']=='' or $_POST['repasswd']==''){ my_msg("欄位不可空白","mod.html"); } if($_POST['passwd']!=$_POST['repasswd']){ my_msg("密碼並不相符,需重複鍵入相同密碼以確認","mod.html"); if (isset($_COOKIE['cookie_id'])) { $sqlstr="update member set passwd ='".$_POST['passwd']."' where id = '".$_COOKIE['cookie_id']."'"; //組合 sql }else{ my_msg("登入異常,無法取得 id,請重新登入","login.html");

27 會員修改資料:說明 在表單中送出passwd與repasswd兩個變數 在判斷程式中 檢查所有欄位是否空白 檢查重複輸入密碼是否相同
由$_COOKIE[‘cookie_id’]取得使用者帳號 組合成update子句並執行

28 會員修改資料:執行畫面

29 管理者刪除會員:表單(節錄) del.php
<? if (isset($_COOKIE['cookie_chk'])) { if($_COOKIE['cookie_chk']!="adm_logined"){ my_msg("登入失敗,請重新登入","login.html"); } }else{ my_msg("登入失敗,請重新登入","login.html");}

30 管理者刪除會員:表單(節錄) del.php
$sqlstr="select id from member where rank=1 and status =1"; $result=mysql_query($sqlstr,$link); ?> <h1 align="center">選取要刪除的會員</h1><p align="center"> <form name="form1" action=del_chk.php method=post> <SELECT name="del_id" size="1"> <? while($row = mysql_fetch_array($result, MYSQL_BOTH)){ echo "<OPTION>".$row["id"]; } </SELECT> <input type="submit" name="送出"><input type="reset" name="重設"></p> </form>

31 管理者刪除會員:判斷(節錄) del_chk.php
if($_POST['del_id']==''){ my_msg("欄位不可空白","del.php"); } $sqlstr="update member set status = 0 where id = '".$_POST['del_id']."'"; //組合 sql $result=mysql_query($sqlstr,$link); //執行 sql

32 管理者刪除會員:說明 在表單中透過SQL Select取得會員清單,並以<SELECT> 下拉選單方式提供選擇。 在判斷程式中
檢查所有欄位是否空白 組合成update子句並執行以變更會員狀態

33 管理者刪除會員:執行畫面

34 管理者修改會員:表單(節錄) mod_passwd.php
//進入管理員區前,需先透過 Cookie 驗證身份 <?if (isset($_COOKIE['cookie_chk'])) { if($_COOKIE['cookie_chk']!="adm_logined"){ my_msg("登入失敗,請重新登入","login.html"); } }else{

35 管理者修改會員:表單(節錄) mod_passwd.php
$sqlstr="select id from member where rank=1 and status =1"; $result=mysql_query($sqlstr,$link);?> <h1 align="center">選取要變更密碼的會員</h1><center> <form name="form1" action=mod_passwd_chk.php method=post> <SELECT name="mod_id" size="1"> <? while($row = mysql_fetch_array($result, MYSQL_BOTH)){ echo "<OPTION>".$row["id"]; } ?> </SELECT></p> 請輸入這個會員的新密碼:<input type="password" name="passwd"></p> 請重複輸入這個會員的新密碼以確認:<input type="password" name="repasswd"></p> <input type="submit" name="送出"><input type="reset" name="重設"> </p> </form><br><br>

36 管理者修改會員資料:判斷(節錄) mod_passwd_chk.php
if($_POST['passwd']=='' or $_POST['repasswd']==''){ my_msg("欄位不可空白","mod_passwd.php"); } if($_POST['passwd']!=$_POST['repasswd']){ my_msg("密碼並不相符,需重複鍵入相同密碼以確認","mod_passwd.php"); $sqlstr="update member set passwd ='".$_POST['passwd']."' where id = '".$_POST['mod_id']."'"; $result=mysql_query($sqlstr,$link);

37 管理者修改會員資料:說明 在表單中透過SQL Select取得會員清單,並以<SELECT> 下拉選單方式提供選擇。
送出mod_id、passwd與repasswd三個變數。 在判斷程式中 檢查所有欄位是否空白 組合成update子句並執行以變更會員密碼

38 管理者修改會員資料:執行畫面

39 系統測試 在開發完每一模組,並對每一模組均進行單元測試後,便可進行系統整合測試。
測試時需以不同角色(會員、管理者)分別進行測試。並應進行各種不預期狀況的測試,以保證系統的穩定性。如以下狀況: 新增會員時,密碼輸入不符。 未正確登入便存取會員專區或管理者專區。 變更密碼時,密碼輸入不符。 管理者刪除會員發生異常。 ….等

40 結論 僅需使用最簡易的文字編輯工具,便可建立動態網頁。 需徹底瞭解本範例專案中每一表單、程式的內容。
在下一章,將以Namo WebEditor美化網站外觀。

41 本章結束 謝謝!!


Download ppt "第11章 會員管理系統實作."

Similar presentations


Ads by Google