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

Slides:



Advertisements
Similar presentations
第二章 简单的 SQL 语句. 本章要点  创建一个简单的表  SQL 语句介绍  最简单的查询语句 select  带有限制条件的查询  查询结果的排序显示.
Advertisements

第八单元 数据库MySQL应用基础 MySQL数据库应用基础 MySQ数据库操作使用 Mysql管理工具 第25章 数据库的增加/删除操作
OceanBase 0.4:从API到SQL 日照
第14章 預存程序 14-1 預存程序的基礎 14-2 建立與執行預存程序 14-3 預存程序的參數傳遞 14-4 預存程序的傳回值
資料庫 (Database) SQL Server 2008實作
数据库概述 简而言之,数据库(DataBase)就是一个存储数据的仓库。为了方便数据的存储和管理,它将数据按照特定的规律存储在磁盘上。通过数据库管理系统,可以有效的组织和管理存储在数据库中的数据。如今,已经存在了Oracle、SQL Server、MySQL等诸多优秀的数据库。在这一章中将讲解的内容包括。
第 八 章 資料庫安全 本投影片(下稱教用資源)僅授權給採用教用資源相關之旗標書籍為教科書之授課老師(下稱老師)專用,老師為教學使用之目的,得摘錄、編輯、重製教用資源(但使用量不得超過各該教用資源內容之80%)以製作為輔助教學之教學投影片,並於授課時搭配旗標書籍公開播放,但不得為網際網路公開傳輸之遠距教學、網路教學等之使用;除此之外,老師不得再授權予任何第三人使用,並不得將依此授權所製作之教學投影片之相關著作物移作他用。
创建数据库 MySql创建数据库的语法: CREATE DATABASE 数据库名; 例: CREATE DATABASE mydb;
資料庫管理 資管二 賴柏融.
PL/SQL程序设计 过程, 函数 Trigger 对象关系数据库技术.
留言版 1.先Create一個留言板的table
Introduction to PHP part3
2018/11/11 CGI程式設計進階 (for UNIX Perl) 國立中央大學電算中心 陳慶彥.
第六章 學習SQL語言.
第四組 停車場搜尋系統 第四組 溫允中 陳欣暉 蕭積遠 李雅俐.
PHP +MySQL快速入門 Lesson 4.
PHP與MySQL連結 大葉大學 資工系 黃鈴玲.
LINQ 建國科技大學 資管系 饒瑞佶.
XSS & SQL Injection理論 2014/7/29 許子謙.
SQL結構化查詢語言 SQL是 Structured Query Language 的縮寫,簡單的說,SQL是一種與資料庫溝通的共通語言,它是當時在 IBM 工作的 E.F. Codd於1970 年針對關聯式模型 ( relational model ),所建構出來的資料庫理論,也因此有了所謂關聯式資料庫的系統,但在發展的初期,由於各種關聯式資料庫系統廠商的.
PHP與SQL語法存取MySQL SQL
後端教學-MYSQL 講師:邱小楓(邱珈蓉)
PHP與MySQL 入門學習指南 凱文瑞克 著 第 23 章 資料型別.
第十一章 資料庫設計與權限設定.
至 IBM 專業認證網站 ,點選 About the member site
利用PHP將資料存入MySQL PHP 5 Tutorial 範例:
高等資料庫管理系統 Advanced Database Management System
資料庫安全 (Database Security)
電子商務網站建制技術與實習(II) 助教:江宜政 吳昇洋.
Google Data API Spreadsheet
課程名稱:資料庫系統 授課老師:李春雄 博士
課程名稱:資料庫系統 授課老師:李春雄 博士
安裝JDK 安裝Eclipse Eclipse 中文化
第三章作业讲评 文洁 2012/4/10.
SQL SERVER 一些经典语句 1.
SQL結構化查詢語言 SQL是 Structured Query Language 的縮寫,簡單的說,SQL是一種與資料庫溝通的共通語言,它是當時在 IBM 工作的 E.F. Codd於1970 年針對關聯式模型 ( relational model ),所建構出來的資料庫理論,也因此有了所謂關聯式資料庫的系統,但在發展的初期,由於各種關聯式資料庫系統廠商的.
实验4:PL-SQL编程 1.实验目的 2.实验原理 PL/SQL是一种过程化语言,属于第三代语言,本实验在与熟悉使用PL/SQL编程.
OpenID與WordPress使用說明
App Inventor2呼叫PHP存取MySQL
Android App簡介及 App Inventor 2體驗 靜宜大學資管系 楊子青
使用PHP來操作資料庫 教授:楊維邦 教授 助教:李政均、劉秋良.
PHP與SQL語法存取MySQL SQL
实验二讲评 … 张榆….
第 10 章 数据库编程.
第20章 MySQL数据库.
数据库技术与应用.
表單(Form).
PHP +MySQL快速入門 Lesson 3.
MySQL开发规范 DB组-张浩.
VS.NET 2003 IDE.
架站實做—AppServ
密碼變更說明 含WinXP、Win7及Citrix.
認識資料庫 MySQL 資料庫新增 MySQL 資料表新增 認識欄位資料表 資料新增、刪除、修改、瀏灠 資料表清空與刪除
認識資料庫 MySQL 資料庫新增 MySQL 資料表新增 認識欄位資料表 資料新增、刪除、修改、瀏灠 資料表清空與刪除
Ch09 在網頁之間傳遞資訊 網頁程式設計.
表單(Form).
CS, ZJU 4/18/2019 Chapter 7 数据库.
3.2 Mysql 命令行 1 查看数据库 SHOW DATABASES; 2 创建一个数据库test1 CREATE DATABASE test1; 3 选择你所创建的数据库 USE test1; (按回车键出现Database changed 时说明操作成功!) 4 查看现在的数据库中存在什么表.
表格(HTML – FORM).
OceanBase 0.4:从API到SQL 日照
Google協作平台+檔案分享(FileZilla+網路芳鄰)
期末考.
SAP 架構及前端軟體安裝 Logical View of the SAP System SAP Frontend 7.1安裝與登入
HTML 103 互動式網頁 助教:黃毓瑩.
PHP與SQL語法存取MySQL SQL
利用PHP將資料存入MySQL PHP 5 Tutorial 範例:
表格(HTML – FORM)
資料庫PROJECT B 沈芝羽 B 李翊銘.
11 檢視表的建立 11-1 檢視表的基礎 11-2 建立檢視表 11-3 修改與刪除檢視表 11-4 編輯檢視表的內容.
表单页面 表单是用户利用浏览器对Web站点网络数据库进行查询的一种界面,用户利用表单可以输入信息或选择选项等,然后将这些信息提交给服务器进行处理。通过表单,既可以将浏览器的信息发送到Internet服务器上,同时表单也可以使用户与站点的浏览者交互或从浏览者那里收集信息。它是网页的设计者和使用者相互交流的工具。表单对象包括文本域(单行、多行、密码)、列表、菜单、复选框、单选框、按钮等。
Presentation transcript:

第11章 會員管理系統實作

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

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

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

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

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

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

資料庫規劃 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管理者

資料庫規劃操作

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

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

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"); ?>

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>"; ?>

會員註冊:表單 (節錄) 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> ….

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

會員註冊:判斷程式(節錄) 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");

會員註冊:判斷程式(節錄) 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); ?>

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

會員註冊:執行畫面

會員登入:表單(節錄) 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>

會員登入:判斷程式(節錄) 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);  … 

會員登入:判斷程式(節錄) 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"); }

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

會員登入:執行畫面

會員修改資料:表單(節錄) 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>

會員修改資料:判斷程式(節錄) 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"); …

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

會員修改資料:執行畫面

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

管理者刪除會員:表單(節錄) 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>

管理者刪除會員:判斷(節錄) 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

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

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

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

管理者修改會員:表單(節錄) 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>

管理者修改會員資料:判斷(節錄) 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);

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

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

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

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

本章結束 謝謝!!