




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第一章 概 述1.1 php的概念php: hypertext preprocessor (超文本預(yù)處理器) 的縮寫,它是一種服務(wù)器端的 html 腳本/編程語言,是一種簡單的、面向?qū)ο蟮摹⒔忉屝偷摹⒔训摹踩摹⑿阅芊浅V叩摹ⅹ?dú)立于架構(gòu)的、可移植的、動(dòng)態(tài)的腳本語言php是一種功能強(qiáng)大的腳本語言。php將擊敗perl/python并取而代之。php是下一代的perl/python腳本。php可以勝任任何perl/python做的工作,并且做的更多,更好,更簡潔! 1.2 php在網(wǎng)絡(luò)編程方面的優(yōu)越性1995年時(shí),rasmus在用php寫他的個(gè)人主頁;今天,php成為風(fēng)靡全球的腳本語言,越來
2、越多的站點(diǎn)選擇使用php,連yahoo都放棄了自己的腳本而改用php支持它的網(wǎng)站。可以說,php是一個(gè)奇跡。我一直認(rèn)為,任何奇跡背后都有它的原因。現(xiàn)在,就讓我們透過這個(gè)奇跡,來看看php的成功之道。1 簡單易用php的入門門檻很低,它對使用者的要求微乎其微。學(xué)過c語言的人,使用php幾乎不需要什么時(shí)間。它們的語法是如此相似,以至于我常常想,是不是在c語言變量前加個(gè)$就能改成php。這使得大量c程序員在網(wǎng)絡(luò)腳本中選擇了php。另外,比起asp的組件系統(tǒng)和java龐大的類庫來,php的函數(shù)庫要好學(xué)多了。在編程風(fēng)格上,php更是自由,你可以使用n種風(fēng)格來寫你的腳本程序。這些特性使得php成為初學(xué)者的
3、首選語言。搶占初學(xué)者市場是很重要的策略。如同任何人都會(huì)對自己的初戀記憶猶新一樣,人們往往會(huì)對最初學(xué)習(xí)的語言有很深的感情。即使后來自己成長了,改用其他語言了,還是會(huì)時(shí)時(shí)記起最初學(xué)習(xí)的語言。在這點(diǎn)上,php做得很出色。2 剪裁得當(dāng)php開發(fā)組是最了解網(wǎng)絡(luò)的一群人,他們非常清楚用戶要的是什么。php就是要做一個(gè)出色的網(wǎng)絡(luò)腳本語言,而且,它只是要做一個(gè)網(wǎng)絡(luò)腳本語言。php提供的函數(shù)集在網(wǎng)絡(luò)方面相當(dāng)強(qiáng)大,而且重點(diǎn)均專注于網(wǎng)絡(luò)應(yīng)用。像php中的無組件文件上傳,超多數(shù)據(jù)庫支持等特性都表現(xiàn)出這個(gè)特點(diǎn)。順便說一句,php甚至支持access數(shù)據(jù)庫。專注使得php在網(wǎng)絡(luò)上表現(xiàn)出極其優(yōu)秀的性能。有失才能有得。3 支
4、持強(qiáng)大php有強(qiáng)大的opensource團(tuán)體支持,在網(wǎng)絡(luò)上有數(shù)以萬計(jì)的開源代碼。你可以整合幾個(gè)現(xiàn)有程式來實(shí)現(xiàn)你的應(yīng)用,也可以分析大師級(jí)的代碼來得到提高。php還有很多擴(kuò)展性的項(xiàng)目來增強(qiáng)php在某個(gè)方面的功能。像注重編程規(guī)范化和代碼重用的pear,提供可編譯模板技術(shù)的smarty,甚至開發(fā)桌面程序的gtk。分析完這幾個(gè)理由,我們可以看出,php的成功得益于php開發(fā)組的戰(zhàn)略眼光。php提供了一個(gè)最小工作集,使用戶能用最簡單的方式高效地完成自己需要的應(yīng)用。這正是初學(xué)者需要的。然后它通過方便的擴(kuò)展來提供各個(gè)方面的解決方案,這樣,你只需要學(xué)你要用到的那個(gè)領(lǐng)域的東西。當(dāng)你涉及的領(lǐng)域越來越多時(shí),你的水平也
5、隨之提高,當(dāng)你熟悉了大多領(lǐng)域時(shí),回頭看看,會(huì)發(fā)現(xiàn)不知不覺已到山腰。php也提供了我們一種學(xué)習(xí)態(tài)度。1.3系統(tǒng)開發(fā)環(huán)境一、 操作系統(tǒng)windows xp本系統(tǒng)使用的操作系統(tǒng)為windows xp作為底層操作系統(tǒng),界面友好,性能穩(wěn)定。二、 數(shù)據(jù)庫mysqlmysql是一個(gè)真正的多用戶、多線程sql數(shù)據(jù)庫服務(wù)器。sql(結(jié)構(gòu)化查詢語言)是世界上最流行的和標(biāo)準(zhǔn)化的數(shù)據(jù)庫語言。mysql是以一個(gè)客戶機(jī)/服務(wù)器結(jié)構(gòu)的實(shí)現(xiàn),它由一個(gè)服務(wù)器守護(hù)程序mysqld和很多不同的客戶程序和庫組成。sql是一種標(biāo)準(zhǔn)化的語言,它使得存儲(chǔ)、更新和存取信息更容易。例如,你能用sql語言為一個(gè)網(wǎng)站檢索產(chǎn)品信息及存儲(chǔ)顧客信息,同
6、時(shí)mysql也足夠快和靈活以允許你存儲(chǔ)記錄文件和圖像。mysql主要目標(biāo)是快速、健壯和易用。最初是因?yàn)槲覀冃枰@樣一個(gè)sql服務(wù)器,它能處理與任何可不昂貴硬件平臺(tái)上提供數(shù)據(jù)庫的廠家在一個(gè)數(shù)量級(jí)上的大型數(shù)據(jù)庫,但速度更快,mysql就開發(fā)出來。自1996年以來,我們一直都在使用mysql,其環(huán)境有超過40個(gè)數(shù)據(jù)庫,包含10,000個(gè)表,其中500多個(gè)表超過7百萬行,這大約有100個(gè)吉字節(jié)(gb)的關(guān)鍵應(yīng)用數(shù)據(jù)。mysql建立的基礎(chǔ)是業(yè)已用在高要求的生產(chǎn)環(huán)境多年的一套實(shí)用例程。盡管mysql仍在開發(fā)中,但它已經(jīng)提供一個(gè)豐富和極其有用的功能集。三、 務(wù)器平臺(tái)apacheapache 伺服器則是目前最
7、多 www 網(wǎng)站所采用伺服器。您可以至 下載最新版的程式及相關(guān)文件,若您覺得從國外下載要很久的話,也可以用它的 mirror 站臺(tái)下載。 php 則可以去它的官方網(wǎng)站 下載所需要的程式。 雖然目前 windowsnt 或者 windows98 等 win32 的作業(yè)平臺(tái)也能安裝 php 及 apache 伺服器,不過這似乎沒什么道理,因?yàn)?php 和 apache 在 unix下可以跑得更快更好。 當(dāng)然,若想使用商業(yè)化的作業(yè)平臺(tái),sun、ibm、hp、dec、sgi、nec 等公司都有提供相關(guān)的 unix 或者是 windowsnt 的作業(yè)平臺(tái)。加上高
8、安全性調(diào)整過后的 apache 伺服器:stronghold 或是其它支援 ssl 的 apache 版本。這種組合,相信能滿足商業(yè)化的需求。而 php 就扮演著快速方便的 cgi 角色,讓客戶對站臺(tái)的服務(wù)品質(zhì)更加滿意。四、 發(fā)語言phpphp是一種簡單的,面向?qū)ο蟮模忉屝偷模训模踩模阅芊浅V叩模?dú)立于架構(gòu)的,可移植的,動(dòng)態(tài)的腳本語言。php具有和java類似的class關(guān)鍵字。因?yàn)椴恍枰摂M機(jī),以致速度比java快5倍。php正迅速變成一種標(biāo)準(zhǔn)的,多用途的,面向?qū)ο蟮哪_本語言。php不僅可用來開發(fā)web應(yīng)用程序,也可以開發(fā)普通應(yīng)用程序。 php是一種功能強(qiáng)大的腳本語言。php將
9、擊敗perl/python并取而代之。php是下一代的perl/python腳本。php可以勝任任何perl/python做的工作,并且做的更多,更好,更簡潔! php是hypertext pre-processor(超文本預(yù)處理器)的縮寫,它是一種服務(wù)器端的html腳本/編程語言。php語法上與c相似,可運(yùn)行在apache, netscape/iplanet, 和 microsoft iis web 服務(wù)器上。php作為一種工具,可以讓你創(chuàng)建動(dòng)態(tài)的web頁面。應(yīng)用php的網(wǎng)頁與常規(guī)的html頁面并無二致,你可以用同樣的方式來創(chuàng)建、編輯它們。php允許你直接在html文件里寫入簡單的腳本,這一
10、點(diǎn)與javas cript非常相似。而不同的是,php不依賴于瀏覽器,是服務(wù)器端的語言,而javas cript卻是一種客戶端的嵌在html中的語言。概念上,php與netscape的livewire pro產(chǎn)品,microsoft的asp以及sunmicrosystem 的jsp相似。 php不僅可以用來創(chuàng)建web應(yīng)用程序,也可以用來開發(fā)普通的單機(jī)應(yīng)用程序。 php的強(qiáng)勁之處在于: php是一項(xiàng)最優(yōu)秀的技術(shù)。其它技術(shù),如perl,python, tcl, vb s cript, asp 相對來說,都是陳舊低劣的。即使是java/jsp,也在php之下。 開放源碼 廣泛的數(shù)據(jù)庫連接 大量的擴(kuò)展
11、庫 作為一種多用途的腳本語言,比perl,vb s cript, asp, jsp都要優(yōu)秀第二章 系統(tǒng)的需求分析2.1 系統(tǒng)需求分析需求分析的基本任務(wù)是準(zhǔn)確的回答“ 系統(tǒng)必須做什么?”這個(gè)問題。在需求分析這個(gè)階段,需要仔細(xì)的研究系統(tǒng)所實(shí)現(xiàn)的功能,并進(jìn)一步將他們具體化。1任務(wù)概述u 目標(biāo)將學(xué)生考勤、平時(shí)成績的評(píng)定、以及成績查詢的大量業(yè)務(wù),用計(jì)算機(jī)系統(tǒng)操作完成,對它進(jìn)行全面現(xiàn)代化管理,以便提高信息管理效率。u 運(yùn)行環(huán)境軟件:microsoft windows 2000 server及windows 2000 spi 或更高版本 ie5.5以上硬件:64 mb ram 鼠標(biāo)或其他定點(diǎn)設(shè)備u 系統(tǒng)要完
12、成的任務(wù) 實(shí)現(xiàn)學(xué)生安全登錄 實(shí)現(xiàn)網(wǎng)上簽到 通過技術(shù)手段,避免學(xué)生冒名簽到。 統(tǒng)計(jì)學(xué)生平時(shí)成績。 實(shí)現(xiàn)網(wǎng)上成績的查詢。2.功能需求系統(tǒng)必須完成的功能包括:c 注冊與登錄功能該功能主要實(shí)現(xiàn)學(xué)生與老師的安全登錄。c 簽到功能該功能主要實(shí)現(xiàn)學(xué)生上課網(wǎng)上簽到,以減少老師點(diǎn)名簽到的時(shí)間,提高上課效率。 c 統(tǒng)計(jì)功能系統(tǒng)中的統(tǒng)計(jì)功能可以根據(jù)學(xué)生簽到次數(shù),統(tǒng)計(jì)學(xué)生的平時(shí)成績。c 查詢功能該功能從不同的角度進(jìn)行查詢,多層次地滿足老師及學(xué)生對總成績及個(gè)人成績的查詢要求。2.2 總體設(shè)計(jì) 1本課題研究的內(nèi)容本論文從網(wǎng)站設(shè)計(jì)的基本原理出發(fā),使用php+mysql技術(shù),php是一個(gè)類似微軟asp的服務(wù)器端的嵌入式超文本
13、處理語言,是建立動(dòng)態(tài)網(wǎng)站的強(qiáng)大工具。mysql是一個(gè)真正的多用戶、多線程sql數(shù)據(jù)庫服務(wù)器。mysql是以一個(gè)客戶機(jī)/服務(wù)器結(jié)構(gòu)的實(shí)現(xiàn),它由一個(gè)服務(wù)器守護(hù)程序mysql和很多不同的客戶程序和庫組成。由于其源碼的開放性及穩(wěn)定性,且與網(wǎng)站流行編徎語言php的完美結(jié)合,現(xiàn)在很多站點(diǎn)都利用其當(dāng)作后端數(shù)據(jù)庫,使其獲得了廣泛應(yīng)用。而mysql是一個(gè)輕型sql數(shù)據(jù)庫服務(wù)器,可運(yùn)行在多種平臺(tái)上,包括windows nt和linux,它還有一個(gè)gpl版本,mysql被認(rèn)為是建立數(shù)據(jù)庫驅(qū)動(dòng)的動(dòng)態(tài)網(wǎng)站的最佳產(chǎn)品。php、mysql和apache是linux平臺(tái)網(wǎng)站的最佳拍檔。通過對公共課網(wǎng)上系統(tǒng)的分析、設(shè)計(jì)與具體實(shí)
14、施,從而具體介紹了基于internet/intranet的網(wǎng)站應(yīng)用系統(tǒng)的分布式架構(gòu)模式及實(shí)現(xiàn)機(jī)理。最后采用了php+mysql,設(shè)計(jì)并實(shí)現(xiàn)了公共課網(wǎng)上系統(tǒng)系統(tǒng)設(shè)計(jì)模型2此系統(tǒng)共分為六個(gè)較大的模塊:(一). 注冊模塊 (二). 身份驗(yàn)證模塊 (三).學(xué)生查詢模塊 (四)、學(xué)生簽到模塊 (五)、教師控制臺(tái)模塊 (六)、學(xué)生出勤統(tǒng)計(jì)模塊 在這七個(gè)模塊當(dāng)中共完成19項(xiàng)功能,分別如下:(一) 注冊模塊i. 新用戶注冊(教師或?qū)W生)ii. 用戶登陸(教師或?qū)W生)登錄界面index.php教師注冊t_signup.php學(xué)生注冊s_signup.php教師身份驗(yàn)證t_infor.php學(xué)生身份驗(yàn)證s_inf
15、or.php 圖2-1 流程示意(二) 身份驗(yàn)證模塊i. 教師注冊身份驗(yàn)證ii. 學(xué)生注冊身份驗(yàn)證iii. 回答信息庫中的個(gè)人信息 超級(jí)用戶管理模塊s_answer.php通過驗(yàn)證 s_success.php驗(yàn)證失敗 s_fail.php圖2-2 流程示意(三)學(xué)生查詢模塊iv. 用戶輸入學(xué)號(hào)v. 用戶出勤信息查看學(xué)生查詢模塊s_infor.php查找s_infor.php數(shù)據(jù)庫查詢結(jié)果sss_infor.php圖2-3流程示意(三) 學(xué)生簽到模塊i. 個(gè)人信息提取ii. 簽到結(jié)果查看學(xué)生信息顯示ss_infor.php填加信息ss_infor.php數(shù)據(jù)庫插入信息s_infor.asp圖2-
16、4流程示意(四)教師控制臺(tái)模塊iii. 開始學(xué)生簽到iv. 停止學(xué)生簽到v. 查看本次簽到信息 教師控制臺(tái)t_infor.php開始簽到數(shù)據(jù)庫停止簽到流程示意圖2-5(五)師期末統(tǒng)計(jì)模塊vi. 統(tǒng)計(jì)專業(yè)vii. 統(tǒng)計(jì)年級(jí)viii. 點(diǎn)名次數(shù)ix. 每次點(diǎn)名分?jǐn)?shù)學(xué)生出勤統(tǒng)計(jì)模塊last.php統(tǒng)計(jì)輸入輸入界面last.php統(tǒng)計(jì)查看界面tttlast.php流程示意圖2-6學(xué)生(表間關(guān)系) 主鍵簽到信息表出勤統(tǒng)計(jì)表教師注冊信息表學(xué)生信息表學(xué)號(hào)姓名性別年齡學(xué)歷政治面貌專業(yè)電話家庭地址母親名父親名愛好年級(jí)學(xué)號(hào)姓名專業(yè)用戶帳號(hào)用戶密碼學(xué)號(hào)姓名專業(yè)出勤次數(shù)缺席次數(shù)平時(shí)分學(xué)號(hào)姓名專業(yè)年級(jí)簽到時(shí)間簽到主機(jī)圖
17、2-7教師信息表編號(hào)姓名性別年齡專業(yè)學(xué)歷政治面貌電話畢業(yè)院校家庭地址母親名父親名愛好教師注冊信息表表編號(hào)姓名用戶帳號(hào)用戶密碼圖2-8 第三章 設(shè)計(jì)與實(shí)施3.1系統(tǒng)數(shù)據(jù)庫設(shè)計(jì)表1 學(xué)生信息表(s_infor)中文名稱字段類型null默認(rèn)學(xué)號(hào)s_sno varchar(10)否姓名s_name varchar(20)否性別s_sex varchar(2)否學(xué)歷s_xueli varchar(10)否政治面貌s_mianmao varchar(10)否專業(yè)s_pro varchar(30)否電話s_pho varchar(11)否家庭地址s_addr text否母親名s_mname varchar(
18、20)否父親名s_fname varchar(20)否愛好s_love varchar(30)否年級(jí)s_gra varchar(50)是null表2 教師信息表(t_infor)中文名稱字段類型null默認(rèn)編號(hào)t_sno varchar(10)否姓名t_name varchar(20)否性別t_sex varchar(2)否專業(yè)t_pro varchar(30)否學(xué)歷t_xueli varchar(20)否政治面貌t_mianmao varchar(10)否電話t_pho varchar(11)否畢業(yè)院校t_gra varchar(30)否家庭地址t_addr text否母親名t_fname
19、varchar(20)否父親名t_mname varchar(20)否愛好t_love varchar(30)否表3 學(xué)生簽到信息表(s_login)中文名稱字段類型null默認(rèn)學(xué)號(hào)s_sno varchar(10)否姓名s_name varchar(20)否專業(yè)s_pro varchar(30)否年級(jí)s_gra varchar(10)否簽到時(shí)間s_time date否0000-00-00簽到主機(jī)ip text是null表4 學(xué)生注冊信息表(s_signup)中文名稱字段類型null默認(rèn)學(xué)號(hào)s_sno varchar(10)否姓名s_name varchar(20)否專業(yè)s_pro varch
20、ar(30)否用戶帳號(hào)s_zh varchar(10)否用戶密碼s_pasw varchar(16)否表5 教師注冊信息表(t_signup)中文名稱字段類型null默認(rèn)編號(hào)t_sno varchar(10)否姓名t_name varchar(20)否用戶帳號(hào)t_zh varchar(10)否用戶密碼t_pasw varchar(10)否表6 學(xué)生出勤統(tǒng)計(jì)表(statistic)中文名稱字段類型null默認(rèn)學(xué)號(hào)num varchar(11)是null姓名name varchar(30)是null專業(yè)pro varchar(40)是null出勤次數(shù)pre_times varchar(20)是nu
21、ll缺席次數(shù)absen_times varchar(20)是null平時(shí)分scores varchar(20)是null表7 簽到控制表(t_control)中文名稱字段類型null默認(rèn)標(biāo)志位falg char(2)是null表8 替名簽到信息查看表(t_view)中文名稱字段類型null默認(rèn)學(xué)號(hào)s_sno varchar(10)否姓名s_name varchar(20)否專業(yè)s_pro varchar(30)是null年級(jí)s_gra varchar(20)否簽到時(shí)間s_time date否0000-00-00簽到主機(jī)s_ip text否3.2系統(tǒng)基本流程1.注冊(1)下面是學(xué)生注冊頁:圖3-
22、1(2)學(xué)生注冊驗(yàn)證頁:通過提出隨機(jī)問題,實(shí)現(xiàn)用戶安全注冊。防止他人注冊。圖3-2如果問題回答正確,顯示“您已成功通過驗(yàn)證” 返回主頁。如果問題回答錯(cuò)誤,顯示“請仔細(xì)檢查您的確認(rèn)密碼和學(xué)號(hào)是否正確”。如果帳號(hào)已被注冊,顯示“此用戶帳號(hào)已經(jīng)被注冊了,您無法再次進(jìn)行注冊”。2登錄(1)用戶登錄頁圖3-3注冊后,系統(tǒng)將用戶的帳號(hào)和密碼插入數(shù)據(jù)庫,用戶正確輸入帳號(hào)和密碼,即可登錄。若輸入的帳號(hào)和密碼不正確。顯示“你輸入的帳號(hào)或密碼不正確,請重新輸入”。教師登錄,進(jìn)入教師控制臺(tái)圖3-4學(xué)生登錄如果教師點(diǎn)擊開始簽到,學(xué)生登錄進(jìn)入簽到頁。如果教師點(diǎn)擊停止簽到,學(xué)生登錄進(jìn)入成績查詢頁。3簽到(1)學(xué)生簽到頁圖
23、3-5通過ip防止冒名簽到,限定每個(gè)ip再同一節(jié)課只能有一個(gè)人簽到,并且通過對時(shí)間的限制防止同一人在同一節(jié)課多次簽到。(2)冒名簽到頁 如果有人冒名簽到,教師可以在冒名簽到頁中查看到,ip地址出現(xiàn)相同的,證明學(xué)生曾試圖在一臺(tái)電腦上給兩個(gè)人簽到。圖3-64統(tǒng)計(jì)每簽到一次,系統(tǒng)記錄在數(shù)據(jù)庫中。期末教師輸入每次簽到的分?jǐn)?shù), 分?jǐn)?shù)*統(tǒng)計(jì)次數(shù)=平時(shí)成績圖3-75.查詢教師輸入專業(yè),查詢整個(gè)專業(yè)的成績。圖3-86學(xué)生輸入學(xué)號(hào),查詢個(gè)人的成績。圖3-93.3系統(tǒng)主要功能模塊的實(shí)現(xiàn)下面將對以上六個(gè)模塊中的14項(xiàng)功能的實(shí)現(xiàn)做具體詳細(xì)地闡述。(二)主要功能:(1) 新用戶來訪須知,簡介系統(tǒng)將為用戶提供本系的基本介
24、紹;(2) 新用戶注冊,為新用戶建立一個(gè)信息輸入環(huán)境,同時(shí)系統(tǒng)將保存新的用戶個(gè)人資料;(3) 檢驗(yàn)身份,是用來檢驗(yàn)用戶的身份,防止別人冒名注冊;(三) 實(shí)現(xiàn)方式u 用戶初訪須知:這是一個(gè)版面,即告訴每一個(gè)新來到本系統(tǒng)訪問的用戶,怎樣進(jìn)行注冊,能讓學(xué)生和老師一目了然,正確注冊個(gè)人信息。我在這里用一個(gè)名稱為index.php的頁面來簡單地介紹了本系的一些概況和信息。第一, 選擇自己的身份,老師或者學(xué)生第二, 登錄用戶名和登錄密碼為進(jìn)入系統(tǒng)的必添資料第三, 如果沒有進(jìn)行注冊,需在這里進(jìn)行注冊u(píng) 新用戶注冊:這是一個(gè)為新用戶提供輸入個(gè)人資料的界面窗口,同時(shí),根據(jù)學(xué)校信息庫的特點(diǎn),為每一個(gè)用戶設(shè)計(jì)了準(zhǔn)確
25、的個(gè)人信息。在這里這些個(gè)人資料將輸入到數(shù)據(jù)庫(ts_signup)中的用戶記錄表(t_singup或s_signup)當(dāng)中。在設(shè)計(jì)過程當(dāng)中,使用了t_signup和s_signup兩個(gè)文件來完成此項(xiàng)功能,它們的執(zhí)行步驟如下:教師填寫如下個(gè)人資料(t_signup.php)填寫項(xiàng)目填否填寫說明教師編號(hào)必填用戶名稱不能少于2個(gè)字符。建議:請用英文和數(shù)字鍵真實(shí)姓名必填用于老師之間相互識(shí)別密碼必填最少六位數(shù)字或字母 確認(rèn)密碼必填驗(yàn)證信息正確性學(xué)生填寫如下個(gè)人資料(s_signup.php)填寫項(xiàng)目填否填寫說明學(xué)號(hào)必填用戶學(xué)號(hào)11個(gè)字符。真實(shí)姓名必填用于學(xué)生之間相互識(shí)別專業(yè)必填用于學(xué)生之間進(jìn)行相互區(qū)分密
26、碼必填最少六位數(shù)字或字母密碼必填最少六位數(shù)字或字母確認(rèn)密碼必填驗(yàn)證信息正確性(四) 程序解析:(1) 學(xué)生用戶注冊(s_signup.php):在此系統(tǒng)當(dāng)中,自始自終都是以php技術(shù)當(dāng)中服務(wù)器的表單變量作為操作的標(biāo)識(shí),而且,在不同的功能當(dāng)中,通過它來實(shí)現(xiàn)參數(shù)的傳遞,完成特定的功能。系統(tǒng)只有通過它才能調(diào)用,但我們可以對使用的系統(tǒng)變量進(jìn)行定義和初始化,具體實(shí)現(xiàn)如下:$s_sno 為學(xué)生的學(xué)號(hào),在這里它是唯一可以標(biāo)示某一個(gè)人的身份; $s_name 注冊者姓名; $s_pro 注冊者專業(yè)$s_zh 注冊者帳號(hào);$s_pasw 注冊者密碼;$textfield 注冊者的確認(rèn)密碼 頁面進(jìn)行分析:i. 用
27、戶個(gè)人資料填寫(s_signup.jsp)在此頁面當(dāng)中,主要由兩部分組成,一部分是顯示輸入信息界面,另一部分為函數(shù)控制部分,由javascript語言實(shí)現(xiàn)。function sub()語句主要是控制注冊者填寫的內(nèi)容不能為空。例如下:function sub()if(document.form1.s_name.value=)window.alert(請?zhí)顚懩愕牡卿浢?;window.form1.id.focus();return false;if(document.form1.s_pasw.value=)window.alert(請?zhí)顚懨艽a!);window.form1.pwd.focus()
28、;return false;余下的內(nèi)容為html的設(shè)計(jì)頁面。例如下:關(guān)鍵的語句在與取得表單輸入信息,語句如下: ii. 注冊表單輸入(s_answer.php)在此頁面,主要完成數(shù)據(jù)向數(shù)據(jù)庫中的操作:選擇數(shù)據(jù)庫表(s_signup),填加一條記錄,即新用戶生成,返回主頁面。重名用戶的控制,即注冊用戶的用戶名稱如果在系統(tǒng)中存在,那么將返回信息告訴用戶重新填寫用戶名稱。實(shí)現(xiàn)此功能,首先,從數(shù)據(jù)庫中確認(rèn)申請的用戶名稱是否重復(fù),代碼如下 0)echo 此學(xué)號(hào)已經(jīng)被注冊了,您無法再次進(jìn)行注冊;else mysql_select_db($database_conn, $conn);$query_recor
29、dset2 = select * from s_signup where s_sno=$s_zh;$recordset2 = mysql_query($query_recordset2, $conn) or die(mysql_error();$row_recordset2 = mysql_fetch_assoc($recordset2);$totalrows_recordset2 = mysql_num_rows($recordset2);if($totalrows_recordset20)echo 此用戶帳號(hào)已經(jīng)被注冊了,您無法再次進(jìn)行注冊;其次是將數(shù)據(jù)輸入輸入庫中:$insert_que
30、ry=insert into s_signup values($field1,$field2,$field3,$field4,$field5); mysql_query($insert_query, $conn);3 身份驗(yàn)證模塊(一) 主要功能(1) 防止他人冒名注冊個(gè)人帳戶;(2) 不同的用戶具有不同的管理功能(3) 輸入成功后,具有返回的功能;(二)實(shí)現(xiàn)方式u 身份驗(yàn)證$row=mysql_fetch_row($recordset1); $i=mt_rand(7,11); if($i=7) print 請準(zhǔn)確回答你的電話號(hào)碼 ?; else if($i=8) print 請準(zhǔn)確回答你的家
31、庭地址 ?; else if($i=10) print 請準(zhǔn)確回答你的父親名 ?; else if($i=9) print 請準(zhǔn)確回答你的母親名 ?; else if($i=11) print 請準(zhǔn)確回答你的個(gè)人愛好 ?;$field=$row$i;$field1=$s_sno;$field2=$s_name;$field3=$s_pro;$field4=$s_zh;$field5=$s_pasw; else header(location:s_fail.php);? 成績輸入存儲(chǔ)模塊(cjsr_ok.jsp)第一,查找的信息不能為空,否則視為無效。第二,連接數(shù)據(jù)庫(chengji),輸入信息
32、。如果有信息正確,寫入。代碼如下:string asql=select * from chengji where id=+id+;resultset rs=connben.executequery(asql);(id,name,rgzn,hbyy,jkjs,sjjg,sjksj,java,xhxt,dmtjs) values(+id+,+name+,+rgzn+,+hbyy+,+jkjs+,+sjjg+,+sjksj+,+java+,+xhxt+,+dmtjs+);u 成績修改輸入模塊(cjsrup.jsp)第一, 輸入要修改學(xué)生的學(xué)號(hào)和姓名等待系統(tǒng)確認(rèn)后,將進(jìn)入修改主頁面。第二,將要修改是成
33、績輸入到表單中,由表單提交到數(shù)據(jù)庫中。name=id 為了建立不同的紀(jì)錄而設(shè)定的代號(hào),在這里它是唯一可以標(biāo)示某一個(gè)學(xué)生的身份; name=pwd 學(xué)生密碼; name=rgzn 代表課程人工智能;name=hbyy 代表課程匯編語言 name=jkjs 代表課程接口技術(shù);name=sjjg 代表課程數(shù)據(jù)結(jié)構(gòu);name=sjksj 代表課程數(shù)據(jù)庫設(shè)計(jì);name=java 代表課程java語言;name=xhxt 代表課程信號(hào)系統(tǒng);name=dmtjs 代表課程多媒體技術(shù);function sub()定義到表中姓名和學(xué)號(hào)不能為空。例子如下:function sub()if(document.for
34、m1.id.value=)window.alert(請?zhí)顚懩愕膶W(xué)號(hào)!);window.form1.id.focus();return false;4學(xué)生查詢模塊(一)主要功能(1) 查詢功能是面向全體用戶的查詢功能;(2) 查找的對象主要包括數(shù)據(jù)庫中簽到信息表(s_login)中的全部內(nèi)容。(3) 查找對象與數(shù)據(jù)庫匹配的字符,如不相符不予以查找。(4) 查詢的結(jié)果顯示在查詢結(jié)果頁面(sss_infor.php)上。(二)實(shí)現(xiàn)方式u 成績查詢模塊(sss_infor.php) 查找學(xué)生學(xué)號(hào)(sss_infor.php)第一, 要求輸入學(xué)生的學(xué)號(hào),這部分由標(biāo)準(zhǔn)的html代碼生成;第二, 關(guān)鍵的語句
35、在與取得數(shù)據(jù)庫信息,語句如下:。u 顯示成績模塊(sss_infor.php)第一, 連接數(shù)據(jù)庫,查找信息。如果有正確的信息顯示出來 mysql_select_db($database_conn, $conn);$query_recordset1 = select * from s_login where s_sno=$field ;第二, 把要顯示的信息輸入出來 $maxrows_recordset1 = 20;$pagenum_recordset1 = 0;$query_recordset1 = select * from s_login where s_sno=$field ;$quer
36、y_limit_recordset1 = sprintf(%s limit %d, %d, $query_recordset1, 5學(xué)生簽到模塊(一)主要功能(1) 根據(jù)用戶帳號(hào),從數(shù)據(jù)庫中學(xué)生信息表中提取數(shù)據(jù);(2) 將提取的信息放到簽到信息頁上;(二)實(shí)現(xiàn)方式u 根據(jù)用戶帳號(hào)提取個(gè)人信息 mysql_select_db($database_conn, $conn);$query_recordset2 = select s_infor.* from s_infor ,s_signup where s_infor.s_sno= s_signup.s_sno and s_signup.s_zh=
37、$s_zh;u 實(shí)現(xiàn)簽到第一, 連接數(shù)據(jù)庫,查找信息。如果有正確的信息輸入進(jìn)去mysql_select_db($database_conn, $conn);$query= insert into s_login values($s_sno,$s_name,$s_pro,$s_gra,$cc,$ip);$recordset1 = mysql_query($query, $conn) or die(mysql_error();header(location: pp.php?flag=2);第二,把要顯示的信息轉(zhuǎn)到s_infor.php頁面輸出來 6教師控制臺(tái)模塊(一)主要功能(1)教師允許簽到,設(shè)
38、置數(shù)據(jù)庫(t_control)中控制標(biāo)志位;(2)停止簽到,設(shè)置數(shù)據(jù)庫中(t_control)控制標(biāo)志為;(二) 實(shí)現(xiàn)方式u 設(shè)置標(biāo)志為 第一, 教師允許簽到if(!strcmp($button,開始) /使標(biāo)志位值為1 開始簽到$query_recordset1 = insert into t_control(falg) values(1);$recordset1 = mysql_query($query_recordset1, $conn) or die(mysql_error();第二, 停止簽到 if (!strcmp($button,停止)/清除標(biāo)志位$query_recordset
39、1 = delete from t_control where falg=1;$recordset1 = mysql_query($query_recordset1, $conn) or die(mysql_error();u 使其他學(xué)生下次正常簽到$query_recordset1 = update s_login set ip=1;$recordset1 = mysql_query($query_recordset1, $conn) or die(mysql_error();7學(xué)生出勤統(tǒng)計(jì)模塊(一)主要功能(1)教師期末統(tǒng)計(jì)學(xué)生出勤信息(2)了解學(xué)生本學(xué)期學(xué)習(xí)狀態(tài);(3)正確錄入期末成績;
40、 (二)實(shí)現(xiàn)方式 教師登錄(t_last.php)第一, 要統(tǒng)計(jì)的信息不能為空。第二,顯示統(tǒng)計(jì)信息maxrows_recordset1 = 20;$pagenum_recordset1 = 0;$query_recordset1 = select * from statistic;$query_limit_recordset1 = sprintf(%s limit %d, %d, $query_recordset1, $startrow_recordset1, $maxrows_recordset1);第四章 測 試測試在開發(fā)軟件過程中是一個(gè)不可缺少的部分。因?yàn)樵陂_發(fā)軟件系統(tǒng)的漫長過程中,面對
41、著極其錯(cuò)綜復(fù)雜的問題,人的主觀認(rèn)識(shí)不可能完全符合客觀現(xiàn)實(shí),與工程密切相關(guān)的各類人員之間的通信和配合也不可能完美無缺,因此,在軟件生命周期的各個(gè)階段都不可避免地產(chǎn)生差錯(cuò)。我們力求在每個(gè)階段結(jié)束之前通過嚴(yán)格的技術(shù)審查,盡可能早地發(fā)現(xiàn)并糾正錯(cuò)誤;但是,經(jīng)驗(yàn)表明審查并不能發(fā)現(xiàn)所有的差錯(cuò),此外在編碼過程中還不可避免地會(huì)引入一些新的錯(cuò)誤。如果在軟件生產(chǎn)性運(yùn)行之前,沒有發(fā)現(xiàn)并糾正軟件中的大部分差錯(cuò),則這些錯(cuò)誤遲早在生產(chǎn)過程中暴露出來,那時(shí)不僅僅改正這些錯(cuò)誤的代價(jià)更高,而且往往會(huì)造成很惡劣的后果。測試的目的就是在軟件投入生產(chǎn)運(yùn)行之前,盡可能多地發(fā)現(xiàn)并糾正軟件中的錯(cuò)誤。基于上述的原因,我在編碼過程中進(jìn)行了模塊測
42、試,編碼結(jié)束進(jìn)行了系統(tǒng)測試和驗(yàn)收測試。 4.1 模塊測試4.1.1 測試方案我采用了白盒測試(又稱結(jié)構(gòu)測試),即按照程序內(nèi)部的邏輯結(jié)構(gòu),檢驗(yàn)程序中的每條通路是否能夠按照預(yù)定要求正常工作。由于設(shè)計(jì)過程當(dāng)中,不免會(huì)出現(xiàn)很多意想不到的結(jié)果發(fā)生,為了減少不必的錯(cuò)誤出現(xiàn),同時(shí),為了能夠使不同的文件之間正確和有效的銜接,我在設(shè)計(jì)模塊的過程,對于每一個(gè)文件的執(zhí)行和模塊的執(zhí)行都做了認(rèn)真地測試,以求達(dá)到設(shè)計(jì)要求。4.1.2 測試過程主要檢查模塊的兩個(gè)方面,一個(gè)是各個(gè)模塊之間的接口,另一個(gè)是模塊的運(yùn)行是否正常。對于檢驗(yàn)各個(gè)模塊之間的接口,所做的測試工作有:1) 每個(gè)被調(diào)用模塊之間是否能夠正常接受參數(shù)(包括系統(tǒng)變量
43、);2) 每個(gè)被調(diào)用模塊之間能否正常地而且有效地銜接上;對于檢驗(yàn)?zāi)K的運(yùn)行是否正常,所做的測試工作有:1) 對每一個(gè)模塊中各個(gè)執(zhí)行過程嚴(yán)格地進(jìn)行檢查與檢測;2) 對每一個(gè)模塊中各個(gè)文件內(nèi)所設(shè)計(jì)的函數(shù)逐個(gè)進(jìn)行達(dá)標(biāo)測試;3) 對每一個(gè)模塊在調(diào)用的過程中,時(shí)刻檢測系統(tǒng)變量的過程性變化;4.1.3 測試結(jié)果測試結(jié)果表明,每一個(gè)模塊都能夠正常獨(dú)立地運(yùn)行,各個(gè)模塊之間的接口亦能正確地吻合,同時(shí)每個(gè)模塊基本上達(dá)到了設(shè)計(jì)的要求。4.2 系統(tǒng)測試4.2.1 測試方案這個(gè)部分由我的導(dǎo)師在設(shè)計(jì)過程當(dāng)中和結(jié)束是不斷地進(jìn)行黑盒測試(又叫功能測試),即檢查程序功能是否按照規(guī)格說明書的規(guī)定正常使用,程序是否能夠適當(dāng)?shù)亟邮蛰斎霐?shù)據(jù)產(chǎn)生正確的輸出信息,并且保持外部信息的完整性。在這次的設(shè)計(jì)當(dāng)中,對于每一個(gè)模塊的功能實(shí)現(xiàn)上和設(shè)計(jì)風(fēng)格上,我的導(dǎo)師都做了細(xì)致的檢
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- DB62T 4068-2019 食用百合脫毒技術(shù)規(guī)程
- 現(xiàn)代建筑企業(yè)總經(jīng)理的職責(zé)與挑戰(zhàn)
- 制造業(yè)財(cái)務(wù)管理的最佳實(shí)踐范文
- 2025年度幼兒園德育游戲化教學(xué)計(jì)劃
- 工地施工現(xiàn)場疫情防控流程
- 2025學(xué)校衛(wèi)生知識(shí)普及計(jì)劃
- 高層建筑封頂儀式慶典流程
- 2025年某縣公廁建設(shè)項(xiàng)目可行性研究報(bào)告
- 2025年萬科房地產(chǎn)公司質(zhì)量控制流程
- 提升學(xué)生寫作水平的教學(xué)案例
- 市職業(yè)技能培訓(xùn)工作調(diào)研報(bào)告
- 焊縫外觀質(zhì)量檢驗(yàn)標(biāo)準(zhǔn)
- 護(hù)理題庫-基層衛(wèi)生崗位練兵和技能競賽試題
- 鑄造工藝基礎(chǔ)課件
- 應(yīng)急通信產(chǎn)業(yè)發(fā)展研究報(bào)告(2023年) -中國信通院
- 2023重慶環(huán)衛(wèi)集團(tuán)有限公司所屬子企業(yè)招聘24人筆試備考題庫及答案解析
- Cpk 計(jì)算標(biāo)準(zhǔn)模板
- 全過程工程咨詢管理服務(wù)方案
- 大學(xué)生朋輩心理輔導(dǎo)知到章節(jié)答案智慧樹2023年浙江大學(xué)
- 朝鮮半島社會(huì)與文化智慧樹知到答案章節(jié)測試2023年上海商學(xué)院
- 2023華農(nóng)c語言試卷
評(píng)論
0/150
提交評(píng)論