版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、圖 1注冊為新會員普通會員管理管理員頁面寫入會員信息寫入提取數據庫服務器提取和寫入用戶信息案例會員管理設計會員管理的網頁功能在現今網站構建上相當的重要, 尤其是對于一些需要付費來取得會員認證的公司和個人網站。為了避免誤闖的用戶及有心的黑客,會 員認證及管理的方式的確有其存在的必要。因此, 設計一個縝密的會員管理網頁,也是我們學習PHP的一個重點。系統(tǒng)面向三種用戶,一是新用戶,需要注冊才能成為會員;二是會員用戶,可能需要修改資料和找回遺忘的密碼;三是管理員用戶,承擔對會員資料的維護 和更新。首先要有個存放會員資料的數據庫。根據用戶的角色來設定系統(tǒng)的主要功能1注冊為新會員。2找回遺忘的密碼。3會員
2、修改資料。4.普通會員專區(qū)。5管理員對會員資料的管理。工作流程圖如圖1所示:會員管 理頁面XI _概述系統(tǒng)架構請求URLWeb服務器用戶圖 2說明:1用戶向服務器發(fā)出訪問請求;2服務器提供的會員管理頁面是以菜單方式提供用戶選擇;3新用戶注冊新會員,提供輸入信息的表單并要求用戶輸入相關信息,寫入數 據庫;4.普通會員能登錄到會員專區(qū),通過用戶ID和密碼驗證身份進入專區(qū);通過電 子郵箱和住址來提取忘記的密碼;或通過用戶ID和密碼驗證身份進入修改個 人資料頁面;5管理員作為網站的站長,也是通過用戶ID和密碼驗證身份進入其管理界面,瀏覽會員資料和刪除會員資料。三、系統(tǒng)設計1邏輯結構設計根據對系統(tǒng)架構的
3、描述,可得系統(tǒng)的邏輯結構,如圖2所示。存儲數據savedata.phpI驗證身份|會員區(qū)member.php查詢密碼search.php驗證身份|修改modify.php驗證身份|管理mamager.php寫入數據庫 回顯提示信息讀取數據庫 回顯提示信息讀取數據庫 回顯提示信息讀取數據庫 回顯表單信息讀取數據庫 回顯提示信息忘記密碼:forget.php表單:身份驗證會員登錄:logi n.php表單:身份驗證會員登錄:logi n.php表單:身份驗證站長登錄:logi n.php表單:身份驗證主頁面.main .phpTop:系統(tǒng)標題title.html:規(guī)劃窗口結構Left:菜單Righ
4、t:顯示select.html新會員注冊n ewuser.html表單:新用戶輸入資料注冊為新會員:n ewuser.htm表單:用戶資料更新數據更新數據update.php_寫入數據庫回顯提示信息delete.php_讀寫數據庫回顯提示信息2數據庫設計在MySQL數據庫服務器上建立名為member數據,其中包含一個數據庫表member,各字段的定義和說明如下表:字段類型NULL說明備注idchar(20)否用戶登錄idemailchar(40)否用戶電子郵件網址addresschar(60)用戶住址passwordchar(20)否登錄密碼sexchar(2)是性別idxin t(11)否用
5、戶序列號auto i ncreme nt注:通過phpMyadmin建立,在MySQL的data文件夾中會自動創(chuàng)建一詞數據庫為名的文件夾,包含相關數據。本案例用到的SQL命令如下表命令格式含義SELECT * FROM member WHERE條件表達式查詢(讀?。祿淼挠涗汭NSERT INTO member(字段組,)VALUE(對應值,)向數據表的表尾追加記錄UPDATE member SET字段=值,WHERE條件表達式更新數據表的記錄DELETE FROM member WHERE條件表達式刪除數據表的記錄ALTER TABLE member DROP字段名刪除數據表的字段ALTE
6、R TABLE member ADD字段名 數據類型創(chuàng)建數據表的字段3界面設計主頁面:main.php規(guī)劃窗口界面標題行(title)- title.html菜單(select)-select.html顯示(show)-newuser.html等標題頁:title.html顯示系統(tǒng)的標題信息。菜單頁:select.html包含五個超級鏈接的文本。分別是:登錄為新會員、會員專區(qū)、忘記密碼、修改數據、站長管理新會員注冊:newuser.html包含以下表單,用表格組織如下所示標題行用戶id文本框(20)性別男女單選框Email文本框(40)住址文本框(60)輸入密碼密碼框(10)*重新確認密碼框(
7、10)*送出資料(submit)清除重寫(reset)會員注冊:logi n. php包含以下表單,用表格組織標題行輸入id文本框(20)輸入密碼密碼框(10)*登錄(submit)重新輸入(reset)忘記密碼:forget.php包含以下表單,用表格組織標題行輸入Email文本框(40)輸入地址文本框(60)查詢(submit)重新輸入(reset)會員修改數據:modify.php讀取會員信息回顯在表單中,等待會員修改其中的數據標題行用戶id文本框(20)性別男女單選框Email文本框(40)住址文本框(60)輸入密碼密碼框(10)*重新確認密碼框(10)*修改(submit)站長管理:
8、mamager.php讀取會員信息回顯在表格中,等待站長修改,同時上方有導航條導航條編號姓名Email賬號住址密碼性別復選框N0編號用戶IDEmail確定刪除(submit)重新選?。╮eset)四、編碼實現1.主頁面1)main.php存儲數據:savedata.php顯示成功注冊的信息這是會員管理網頁的框架,使用HTML的框架標記,把頁面劃分為品型結構。主要理解HTML的框架標記的用法。會員管理!- FRAMESET-FRAME n ame=show src=n ewuser.htm這一頁用框架,但您的瀏覽器不支持他們!-mai n.php -2)title.html這只是顯示會員管理網頁
9、的標題。位于框頁的上部。會員管理網頁-title.html -3)select.html這是會員管理的導航菜單,通過超級鏈接,與各個功能頁面鏈接。位于框頁的下左部對會員和站長登錄時,根據不同的編號確定登錄后所要執(zhí)行的程序來完成主要理解HTML的超鏈接標記的用法,尤其是含傳送參數的情況 A HRef= newuser.htm登錄新會員會員專區(qū)忘記密碼修改資料站長管理-select.html -4)newuser.html這是框頁的下右部。主要是顯示超鏈接的頁面。初始頁面是新會員注冊頁 面。通過表單收集會員的資料。為了使頁面整齊,使用的表格來布局頁面。主要理解HTML的表單標記、表格標記的用法。明
10、確表單處理方式和處理表單的程序,尤其要重視對表單中各個組件的name屬性的定義不可忽略。還要注意兩次輸入密碼的組件name屬性要不同。登錄成新會員一一請先填寫以下資料 id 性別男女 Email住址 輸入密碼 重新輸入 -newuser.html -2.新會員數據處理savedata.php?phpin clude(ope ndata.php);$sql=select * from member where id=$id;$records=mysql_query($sql);if($id =)$errmsg=ID字段不可為空白!;echo ;echo 錯誤信息.$errmsg.;echo ;e
11、lseif($sex=)$errmsg=請選擇性別!;echo ;echo 錯誤信息.$errmsg.;echo ;elseif(!ereg(:al num:+:a In um:+.:al nu m:,$email)$errmsg=電子郵件地址錯誤!;echo ;echo 錯誤信息.$errmsg.;echo ;elseif($addr=)$errmsg=住址字段不能為空白!;echo ;echo 錯誤信息.$errmsg.; echo ; elseif(strle n( $password)10 or strle n( $password)6)$errmsg=請輸入6-10個字符的密碼!;e
12、cho ;echo 錯誤信息.$errmsg.;echo ;elseif($password$c on firm)$errmsg=請重新確認密碼!;echo ;echo 錯誤信息.$errmsg.;echo ;elseif(mysql_fetch_row($records)$errmsg=這個賬戶已經有人使用了,請換新的ID!;echo ;echo 錯誤信息.$errmsg.;echo ;else$errmsg=存儲個人資料成功;$sql=i nsert into member(id,email,address,password,sex)value ($id,$email,$addr,$pas
13、sword,$sex);mysql_query($sql);echo ;echo 注冊信息.$errmsg.;echo 恭喜你,你已經成功的登錄成為新會員!;?-savedata.php -代碼解讀:這個程序組主要是用來逐層驗證用戶輸入各字段的數據是否準確,并驗證 在數據表中是否已有相同的id會員,若數據不準確或者id重復則出現相關的錯 誤信息。1)連接數據庫的代碼寫在一個公共模塊opendata.php中,有利于代碼復用, 這里注意使用include()函數把它包含到所要運用的程序中。-ope ndata.php-2)從數據庫讀取和寫入數據,PHP是通過把SQL命令定義為字符串,然 后使用函
14、數mysql_query()來實現的。3)正則表達式:al nu m:+:alnum:+.:a In um:是驗證電子郵件地址的有效 方法。4)各個表單組件的輸入要求可以用JavaScript在newuser.html中加以驗證,這樣做會提高處理的效率。這里通過對按鈕組件的事件處理來實現的,這個按鈕是自定義按鈕,事件是on Click,當觸發(fā)事件后,執(zhí)行函數history.back()返回上一頁面,即newuser.html,要求用戶重新輸入。5)此程序中遇到的變量祥解變量名取值含義$sqlSQL語句把SQL語句定義為字符串$records查詢數據表的結果集與數據表對應的數據集合$id/$se
15、x/$addr/$email$password/$c on firm非空字符串6-10個字符串前頁表單中用戶填寫的數據$errmsg非空字符串反饋給用戶的錯誤信息5)此程序中遇到的函數祥解函數用法含義Include文件名 ”放在網頁的_L* Ayr標簽之刖;當解釋器讀到函數時,會把指定的文件讀進來Mysql_query($sql)$sql是一個由SQL語句構成的字符串傳入一個SQL語句給MySQLhistory.back()無參數返回上一個頁面(跳轉來的頁面)Ereg(正則表達式,$var)$var是字符串變量判斷字符匹配Strle n( $var)$var是字符串變量求字符串的長度3.查詢密
16、碼這段程序的功能是讓用戶輸入自己的Email和住址來查詢忘記的密碼,只要 兩者之中有一個為準確的數據即可。表單的處理程序seach.php便會找到并顯示出用戶的密碼。1)填寫查詢條件:forget.php密碼查詢-輸入住址或者電子郵件賬號來查詢密碼輸入E-mail輸入住址 _- forget.php -_與登錄界面相似。 在表單的下方的,其作用是把處 理程序中的錯誤信息顯示出來。2)取回密碼:search.php算法描述若用戶的輸入(Email或地址)為空,則出現錯誤信息;若用戶輸入Emai不空,則用Emai作為條件查詢,成功則返回密碼;否則,用輸入的地址作為條件查詢,成功則返回密碼,失敗則返
17、回無法找回的錯誤信息并返回前一頁面,繼續(xù)輸入;若用戶只輸入地址,則用地址作為條件查詢;成功則返回密碼,失敗則返回無法找 回的錯誤信息并返回前一頁面,繼續(xù)輸入。這里的查詢是:使用SELECT命令查詢數據庫中與輸入的查詢條件一致的記錄;把記錄到的密碼存在變量$check中;若$check不空,查詢成功否則失敗?in clude(ope ndata.php);if($email=” and $addr=)$errmsg=請輸入地址或者電子郵件賬號!;Header(Locati on: forget.php?errmsg=$errmsg);echo ;if($email)$sql=select * f
18、rom member where email=$email;$records=mysql_query($sql);list($user,$check,$add,$password,$sex)=mysql_fetch_row($records);if($check)echo 您的密碼為.$password.;elseif($addr)$sql=select * from member where address=$addr; $records=mysql_query($sql);list($user,$email,$check,$password,$sex)=mysql_fetch_row($r
19、ecords); if($check)echo 您的密碼為.$password. ;elseecho 無法按您的輸入找到您的密碼,請檢查輸入是否有誤!;echo ;elseecho 無法按您的輸入找到您的密碼,請檢查輸入是否有誤!;echo ;elseif($addr)$sql=select * from member where address=$addr;$records=mysql_query($sql);list($user,$email,$check,$password)=mysql_fetch_row($records);if($check)echo 您的密碼為.$password
20、.; elseecho 無法按您的輸入找到您的密碼,請檢查輸入是否有誤!;echo ;?-search.php -3)此程序中用到的變量祥解變量名取值含義$check字符串數據庫中滿足查詢條件密碼,為空時,說明輸入的條件不正確4)此程序中用到的函數祥解函數用法含義Header(Locatio n: forget.php?errmsg=$errmsg)放在HTML標記之前:傳遞HTTP的標頭List($user,$email,$check,$password)參數的數據類型可異同時處理一組變量Mysql_fetch_row($records)$records是執(zhí)行查詢語句獲得的數據集取得記錄,以
21、列表形式返回數據4.登錄頁面:log in .php當會員要進入專區(qū)服務、修改個人數據時,或者站長要維護會員信息時都要先登錄,驗明身份后才能進入相應的頁面。這里,根據$login的值來決定執(zhí)行的PHP程序。FORM actio n= method=post輸入ID輸入密碼 -login.php -代碼解讀:1)通過$login判斷用戶所要登錄的頁面,設置頁面的標題和處理輸入身份信 息的PHP程序,這里的$login是選擇了鏈接后傳送來的。2)顯示表單,要求用戶填寫ID和密碼,FORM中? echo $action; ?動態(tài)地設定處理此表單的程序。3)此程序中用到的變量祥解。變量名取值含義$ti
22、tle字符串要登錄頁面的標題$act ion以PHP程序名為值的字符串要執(zhí)行的PHP程序名5.會員專區(qū)登錄處理member.php這是程序是會員專用的網頁, 網頁的內容可根據需要設計, 加在“歡迎光 臨會員網頁”之后。?in clude(ope ndata.php);$sql=select * from member where id=$id;$records=mysql_query($sql);list($user,$email,$addr,$check,$sex)=mysql_fetch_row($records);if($user=”)$errmsg=ID輸入不正確或者尚未登錄為新會員;
23、header(Locati on :logi n. php?errmsg=$errmsg&logn=1);elseif($password$check)$errmsg=密碼輸入不正確! ?。籬eader(Locati on :logi n. php?errmsg=$errmsg&logn=1);? ,歡迎光臨會員網頁。-member.php -代碼解讀PHP代碼部分是驗證會員身份的算法描述:建立數據庫鏈接; 讀取與輸入用戶id相同的記錄; 存放在一列變量中; 若用戶名為空,則 設置錯誤信息; 程序重新定位到登錄頁面,顯示錯誤信息, (要求用戶重新輸入) 否則,若用戶輸入密碼與數據庫中的不一致,
24、則 設置錯誤信息; 程序重新定位到登錄頁面,顯示錯誤信息, (要求用戶重新輸入) (合法身份,顯示歡迎信息)6數據修改登錄處理包括兩個程序modify.php和update.php。1)modify.php這段程序在確定了會員身份后,顯示所填寫的會員信息,供用戶修改密碼查詢-輸入住址或者電子郵件賬號來查詢密碼輸入E-mail輸入住址 -modify.php -(1)PHP代碼部分是驗證會員身份的。算法與member.php相同, 但增加了 獲取單選按鈕的選中狀態(tài)部分。(2)HTML代碼部分產生一個表單,各個組件內的數據對應該會員在數據庫存儲的信息;用戶可以在表單上直接修改,并重新確認密碼,按下
25、【修改】按鈕 便能將此表單中的數據傳送到update.php來處理。(3)此程序中用到的變量祥解變量名取值含義$boy空或selected記錄“男”單選按鈕是否被選中$girl空或selected記錄“女”單選按鈕是否被選中2)update.php這段程序與savedata.php類似,不同之處在于,此處對合法數據添加到數據庫 中采用的是更新(UPDATE命令)?in clude(ope ndata.php);$sql=select * from member where id=$id;$records=mysql_query($sql);if($id=”)$errmsg=ID字段不可為空白!
26、;echo ;echo 錯誤信息.$errmsg.;echo ;elseif(!ereg(A:a In um:+:a In um:+.:a In um:,$email)$errmsg=電子郵件地址錯誤!;echo ;echo 錯誤信息.$errmsg.;echo ;elseif($addr=)$errmsg=住址字段不能為空白!;echo ;echo 錯誤信息.$errmsg.;echo ;elseif(strle n( $password)10 or strle n( $password)6)$errmsg=請輸入6-10個字符的密碼!;echo ;echo 錯誤信息.$errmsg.;ec
27、ho ;elseif($password$c on firm)$errmsg=請重新確認密碼!;echo ;echo 錯誤信息.$errmsg.;echo ;else$sql=update member set id=$id, email=$email, address=$addr,password=$password, sex=$sex where id=$id;mysql query($sql);7站長管理登錄處理包括兩個程序manager.php和delete.php1)manager.php這段程序在確定了站長身份后,顯示所數據表中會員的信息,并選取某些數據進行刪除。? /markli
28、n clude(ope ndata.php);$sql=select * from member where id=admi nistrator;$records=mysql_query($sql);list($user,$semail,$addr,$check,$sex,$e n)=mysql_fetch_row($records); if($password$check and$enter1true)$errmsg=輸入管理員賬號或密碼錯誤!;Header(Locatio n:logi n.php?errmsg=$errmsg&log n=3); /markl$sql=select * f
29、rom member ; /mark2 $records=mysql_query($sql);$total=mysql_ nu m_rows($records);$pagemax=10;$lastp=ceil($total/$pagemax);if ($page no$lastp)$page no=$lastp;elseif($page no $total)$n uml=$total;/mark2$msg仁目前共有. $total.名會員,共 .$lastp.頁。”;mark3$msg2=本頁是第.$pageno.頁,;$msg2.=列出了第.$numf.至U.$ nu ml.條記錄。;if(
30、$page no!=1)$msg.=第1頁 ; else$msg.=第1頁;$msg.= | ;if($page no1)$msg.=A HRef=ma nager.php?page no=.($page no-1).&en ter仁true 上一頁;$msg.= | ;if($page no$lastp)$msg.=A HRef=ma nager.php?page no=.($page no+1).$msg.=&enter仁true下一頁. | ;if($page no !=$lastp)$msg.=A HRef=manager.php?pageno=.($lastp).&enter仁tru
31、e最后頁 ;else$msg.=最后頁;$sql=select * from member where (idx=$ numf and idx /mark3/mark4FORM acti on=man ager.php?e nter仁true&page no= method=post 輸入頁次: FORMactio n=delete.php?page no=&num f=&numl= method=post編號姓名Email賬號住址密碼性別?while(list($id,$email,$addr,$password,$sex,$e n,$idx)=mysql_fetch_row($record
32、s)echo NO.$idx.;echo .$id.$email.$addr.$password.$sex.;?mark4-ma nager.php-(1)PHP代碼的前部分是驗證會員身份的。 默認的管理員Id為administrator, 此條記錄也建立在member數據表中。如代碼段中到mark1處。(2)接下來是設置分頁顯示的參數。如代碼段中到/mark2處。算法描述:從連接的數據庫中讀取數據表member所有的記錄,存放在變量$records中獲取數據表中包含的記錄數,存放在變量$total中;設置每頁顯示的記錄數為10;計算數據表中的記錄最后一頁的頁碼,存放在變量$lastp中;若當
33、前頁碼大于最后一頁的頁碼,則當前頁碼=最后一頁的頁碼;若當前頁碼小于1時,則當前頁碼=1;計算當前頁開始的記錄編號;計算當前頁結束的記錄編號;若當前頁結束的記錄編號小于數據表中包含的記錄數時,則當前頁結束的記錄編號=于數據表中包含的記錄數(3)HTML代碼前一個表格中顯示導航條,包括會員數量信息、總頁數目前所在頁碼;第一頁、上一頁、下一頁、最后一頁的導航鏈接以及用戶輸入要跳轉頁碼的文本框和確認按鈕。如代碼段中到 mark3處。算法描述:設置到導航條上的第一條的信息:目前共有會員數和共有的頁數設置到導航條上的第二條的信息:本頁是第幾頁,列出了第幾條到第幾條記錄設置到導航條上的導航鏈接信息:若當前
34、頁是第一頁,則信息為鏈接到第1頁,否則只顯示第1頁(無鏈接),并在鏈接信息后追加分割線|若當前頁大于第一頁,則信息為鏈接到上一頁,在鏈接信息后追加分割線|若當前頁小于最后一頁,則信息為鏈接到下一頁,在鏈接信息后追加分割線|若當前頁等于最后一頁,則信息為鏈接到最后頁,否則只顯示最后頁(無鏈 接),在鏈接信息后追加分割線|獲取當前頁的記錄信息,為顯示做好準備。特別注意的是,當處于第一頁時,上一頁不出現,第一頁無鏈接(4)HTML代碼中的表格顯示會員信息。如代碼段中到 mark4處。嵌入在HTML中的PHP代碼算法描述如下:獲取數據表中所在分頁各行記錄,存在一列變量中編號列顯示復選框組件和N0.(注意組件的name屬性是數組,以 存放不同的選中狀態(tài),數組下標與記錄行的主索引對應,組件的value屬性是del,當選中時,該行name屬性的值為del),依次顯示其他列的值;重復以上步驟,直到所在頁記錄顯示(5)此程序中用到的變量祥解變量名取值含義$boy或selected記錄“男”單選按鈕是否被選中$girl”selected記錄“女”單選按鈕是否被選中2)delete.php?in clude(ope ndata.php);for($i=$ numf+1;$i-delete.php-這段程序完成三
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣東外語外貿大學《企業(yè)生產物流》2023-2024學年第一學期期末試卷
- 廣東松山職業(yè)技術學院《項目管理與案例分析》2023-2024學年第一學期期末試卷
- 廣東水利電力職業(yè)技術學院《書法基礎》2023-2024學年第一學期期末試卷
- 七年級上冊《5.2.3 解一元一次方程 去括號》課件與作業(yè)
- 廣東南華工商職業(yè)學院《花式跳繩》2023-2024學年第一學期期末試卷
- 廣東梅州職業(yè)技術學院《創(chuàng)業(yè)經營與廣告公司管理》2023-2024學年第一學期期末試卷
- 廣東嶺南職業(yè)技術學院《文獻檢索及研究方法》2023-2024學年第一學期期末試卷
- 八年級上冊英語課本
- 從起跑線出發(fā):小學一年級班主任的教學策略分享
- 【KS5u原創(chuàng)】2021年理綜生物試題4(解析版)
- 2025北京豐臺初二(上)期末數學真題試卷(含答案解析)
- 代辦采礦權許可證延續(xù)登記的委托代理合同律改
- 《中國心力衰竭診斷和治療指南(2024)》解讀完整版
- 2025年內蒙古包鋼集團招聘筆試參考題庫含答案解析
- DB12T 577-2015 地理標志產品 紅花峪桑椹
- 工行個人小額貸款合同樣本
- 江西省萍鄉(xiāng)市2023-2024學年高一上學期期末考試數學試題(解析版)
- 福建省廈門市2023-2024學年高二上學期1月期末質量檢測數學試題(解析版)
- Unit 5 Here and now Section B project 說課稿 2024-2025學年人教版(2024)七年級英語下冊標簽標題
- 學校2025元旦假期安全教育宣傳課件
- 2024年地理知識競賽試題200題及答案
評論
0/150
提交評論