蔣先梅
(江蘇聯(lián)合職業(yè)技術(shù)學(xué)院徐州經(jīng)貿(mào)分院,江蘇 徐州 221004)
學(xué)校管理工作的核心任務(wù)就是學(xué)生管理工作,長期以來,多采用人工的方式來完成學(xué)生管理工作任務(wù)。以人工方式管理的過程中,許多信息會(huì)多次進(jìn)行處理,產(chǎn)生大量的重復(fù)工作,效率很低,信息的保密性也很差。隨著時(shí)間的積累,產(chǎn)生了大量的冗余數(shù)據(jù)和文件信息,使得查找、修改和維護(hù)工作變得棘手。
網(wǎng)絡(luò)信息技術(shù)已經(jīng)應(yīng)用于各行各業(yè)之中,它不僅能夠幫助人們高效、簡(jiǎn)易地找到信息資源,還可以利用其特點(diǎn)與優(yōu)勢(shì)創(chuàng)造出新技術(shù),職業(yè)院校也可以以此為發(fā)展新契機(jī),創(chuàng)造性開發(fā)和完善一個(gè)信息完整、簡(jiǎn)易操作、功能齊備、性能完好的學(xué)生信息管理系統(tǒng)。教師和管理人員可以實(shí)時(shí)對(duì)學(xué)生的信息進(jìn)行查詢、修改、維護(hù),該系統(tǒng)大大減少了冗余的工作量,讓管理更加科學(xué)化、便捷化、智能化、規(guī)范化,有效提高了學(xué)生管理工作的質(zhì)量與效率,為職業(yè)教育的發(fā)展與進(jìn)步提供有力支持。
選用PHP技術(shù)對(duì)系統(tǒng)進(jìn)行開發(fā)和設(shè)計(jì),采用MySQL數(shù)據(jù)庫存儲(chǔ)和管理數(shù)據(jù)信息,PHP與MySQL兩者組合發(fā)揮各自的優(yōu)勢(shì),發(fā)揮了有效性、可用性。
超文本預(yù)處理器(Hypertext Preprocessor,PHP),是一種開源的、免費(fèi)使用、運(yùn)行在服務(wù)器端的腳本語言[1]。PHP學(xué)習(xí)了C語言,吸納了Java和Perl多個(gè)語言的優(yōu)勢(shì),創(chuàng)造出了獨(dú)特方便快速的語法風(fēng)格。PHP使用非常方便、靈活,支持兩種開發(fā)方式,即面向過程和面向?qū)ο?。PHP和HTML可以相互嵌入使用,編輯快捷、簡(jiǎn)易,實(shí)用性強(qiáng),跨平臺(tái)性好,方便移植。
MySQL是一種可以實(shí)現(xiàn)多線程、多用戶的數(shù)據(jù)庫服務(wù)器,它具有開源免費(fèi)、容易使用、運(yùn)行速度快、管理簡(jiǎn)易、安全可靠性好、豐富接口、可移植性好、跨平臺(tái)好、穩(wěn)定性好等優(yōu)點(diǎn)[2]。MySQL以多樣性的優(yōu)勢(shì)贏得了開發(fā)者的青睞,在系統(tǒng)開發(fā)中得到了大量使用[3]。
Apache是一個(gè)完全免費(fèi)、源碼開放的WWW服務(wù)器軟件,可以在多種計(jì)算機(jī)操作系統(tǒng)中運(yùn)行[4]。Apache的特點(diǎn)是靈活配置、運(yùn)行速度快、性能穩(wěn)定、安全可靠、具有跨平臺(tái)性。因?yàn)槭亲杂绍浖?,人們需要在使用過程中不斷完善性能、創(chuàng)新功能,一直在持續(xù)發(fā)展中。
學(xué)生信息管理系統(tǒng)以學(xué)生的信息數(shù)據(jù)為核心,進(jìn)行整合歸類、分級(jí)管理、精準(zhǔn)定位。本文設(shè)計(jì)按照操作端口不同,具體分為管理員模塊、教師模塊和學(xué)生模塊3個(gè)模塊進(jìn)行設(shè)計(jì),系統(tǒng)模塊設(shè)計(jì)如圖1所示。
圖1 系統(tǒng)模塊設(shè)計(jì)
該系統(tǒng)不受時(shí)間和空間的限制,無論是管理員、教師還是學(xué)生都能通過普通瀏覽器登錄該系統(tǒng),選擇所需功能進(jìn)行操作,實(shí)現(xiàn)了信息互動(dòng)和遠(yuǎn)程管理信息。
系統(tǒng)需要對(duì)登錄的用戶權(quán)限進(jìn)行驗(yàn)證來保證系統(tǒng)的穩(wěn)定安全性,PHP內(nèi)置的Session機(jī)制可以存儲(chǔ)標(biāo)識(shí)不同用戶會(huì)話的信息,可以利用Session唯一特性在登錄界面進(jìn)行安全性驗(yàn)證,同時(shí)對(duì)不用登錄身份的用戶給予不同的操作權(quán)限,根據(jù)權(quán)限進(jìn)行驗(yàn)證登錄。所有用戶為同一個(gè)登錄界面,通過選擇不同的用戶類型(管理員、教師、學(xué)生)、輸入賬號(hào)(工號(hào)或?qū)W號(hào))、初始密碼(身份證號(hào)的后六位)和驗(yàn)證碼,由系統(tǒng)判斷所輸入的信息是否存在與正確,信息完全匹配就可以成功進(jìn)入不同的系統(tǒng)模塊,否則返回登錄界面。不同賬號(hào)類型擁有不同的操作權(quán)限,每個(gè)賬號(hào)都是系統(tǒng)最初設(shè)置好的,系統(tǒng)未設(shè)置注冊(cè)功能,防止惡意注冊(cè)的用戶登錄系統(tǒng)進(jìn)行不安全的操作。教師模塊和學(xué)生模塊都有一個(gè)相同的功能,即成功登錄系統(tǒng)后可以自行修改自己的登錄密碼。
在整個(gè)系統(tǒng)中,管理員角色擁有獨(dú)立賬號(hào)和密碼,登錄管理系統(tǒng),擁有最高的管理權(quán)限,可以通過該模塊操作系統(tǒng)中教師模塊和學(xué)生模塊中所有的功能,方便給教師與學(xué)生設(shè)置不同權(quán)限與功能。管理員首要任務(wù)為在系統(tǒng)中錄入教師信息,并為每個(gè)教師分配獨(dú)立的賬號(hào)和密碼,賦予教師管理學(xué)生信息的權(quán)限。為了確保系統(tǒng)的穩(wěn)定安全使用,有效維護(hù)系統(tǒng)數(shù)據(jù)的一致性、系統(tǒng)性,只有管理員擁有管理數(shù)據(jù)庫的權(quán)限,可以對(duì)數(shù)據(jù)庫相關(guān)數(shù)據(jù)進(jìn)行修改,有效保障數(shù)據(jù)庫穩(wěn)定安全,避免其他用戶隨意改變數(shù)據(jù),導(dǎo)致系統(tǒng)數(shù)據(jù)不一致,出現(xiàn)混亂現(xiàn)象。
教師登錄系統(tǒng)時(shí),選擇教師用戶類型,正確輸入登錄信息,即可進(jìn)入教師模塊。教師模塊顯示教師所教的班級(jí),選擇點(diǎn)擊某個(gè)班級(jí)的鏈接,就可以顯示該班級(jí)中所有的學(xué)生學(xué)號(hào)及姓名,點(diǎn)擊某個(gè)學(xué)生學(xué)號(hào)就能夠進(jìn)入該學(xué)生的成績、學(xué)籍庫。
系統(tǒng)給教師分配了獨(dú)立的登錄賬號(hào)和密碼,在教師模塊下,教師可以自行錄入自己的信息及所教課程,也可以對(duì)課程錄入成績進(jìn)行修改,還可以對(duì)學(xué)生信息進(jìn)行查詢、刪除、修改、增加功能操作。
學(xué)生登錄系統(tǒng)時(shí),選擇了學(xué)生用戶類型,正確輸入登錄信息,進(jìn)入學(xué)生模塊。在此模塊下,學(xué)生可以查詢自己的基本信息。學(xué)生的基本信息來自學(xué)生庫,新生在入校時(shí),管理員根據(jù)學(xué)生提交的學(xué)籍檔案中的學(xué)生個(gè)人信息,在系統(tǒng)中錄入所屬系部及專業(yè)、班級(jí)與學(xué)號(hào)。每學(xué)期開學(xué)初,要求學(xué)生登錄系統(tǒng)核實(shí)自己的個(gè)人信息,及時(shí)申請(qǐng)修改個(gè)人的變動(dòng)信息,同時(shí)查看每學(xué)期課程的考核成績,對(duì)于成績只能查詢不能修改,了解自己的學(xué)習(xí)情況,更好制訂學(xué)習(xí)計(jì)劃,調(diào)整學(xué)習(xí)方法。
一個(gè)網(wǎng)頁的背景顏色選擇會(huì)影響整個(gè)頁面的效果,登錄界面顏色選擇在藍(lán)色中混入一點(diǎn)白色,整個(gè)頁面給人一種清新、清爽、潔凈的感覺,舒適度很好。登錄界面是學(xué)生信息管理系統(tǒng)的入口,為管理員、教師和學(xué)生設(shè)置了權(quán)限,實(shí)現(xiàn)了不同權(quán)限登錄不同模塊功能。在數(shù)據(jù)庫中創(chuàng)建了管理員賬號(hào)和密碼登錄表、教師賬號(hào)和密碼登錄表、學(xué)生賬號(hào)和密碼登錄表3個(gè)表格。用戶在登錄頁面選擇不同的身份權(quán)限輸入自己的賬號(hào)和密碼進(jìn)行登錄,系統(tǒng)需要獲取頁面的數(shù)據(jù)與數(shù)據(jù)庫中的3個(gè)表格中已存在的信息進(jìn)行相應(yīng)匹配,只有完全匹配成功之后才可以進(jìn)入系統(tǒng),進(jìn)入不同的用戶模塊進(jìn)行相應(yīng)的操作。在該系統(tǒng)的登錄模塊中,用戶輸入密碼采用MD5進(jìn)行加密處理,確保數(shù)據(jù)安全,系統(tǒng)對(duì)密碼的內(nèi)容從始至終一無所知。用戶在登錄頁面輸入密碼時(shí),通過比較MD5加密和已存在數(shù)據(jù)表里的密碼值是否一致判斷能否成功登錄。
每個(gè)功能模塊的實(shí)現(xiàn)都需要數(shù)據(jù)庫提供數(shù)據(jù)支撐,需要對(duì)數(shù)據(jù)庫中數(shù)據(jù)表的數(shù)據(jù)進(jìn)行增、刪、改、查操作,訪問數(shù)據(jù)庫的頻率比較高,增加了編寫代碼的工作量。如何有效地在系統(tǒng)設(shè)計(jì)中加快訪問數(shù)據(jù)庫的速度,減少數(shù)據(jù)庫操作的代碼重復(fù)工作量,可以利用面向?qū)ο蠓庋b的思想。將數(shù)據(jù)庫的所有操作過程都設(shè)計(jì)成函數(shù),封裝成一個(gè)數(shù)據(jù)庫類。
3.2.1 數(shù)據(jù)庫的連接
在使用PHP操作MySQL數(shù)據(jù)庫之前,PHP需要先與MySQL數(shù)據(jù)庫服務(wù)器建立連接,需要按連接MySQL服務(wù)器、選擇數(shù)據(jù)庫、設(shè)置字符集3步順序準(zhǔn)確無誤地完成。第一步,正確設(shè)置私有的數(shù)據(jù)庫配置信息(主機(jī)名或IP、用戶名、密碼、數(shù)據(jù)庫名、字符集),公共的構(gòu)造方法實(shí)現(xiàn)數(shù)據(jù)庫對(duì)象的初始化連接對(duì)象,私有的連接MySQL服務(wù)器方法中mysqli_connect()函數(shù)連接MySQL服務(wù)器。第二步,在連接MySQL服務(wù)器成功的基礎(chǔ)上,利用構(gòu)建好的私有的選擇數(shù)據(jù)庫方法中mysqli_connect()函數(shù)選擇該系統(tǒng)的數(shù)據(jù)庫。第三步,在前兩步都成功的基礎(chǔ)上利用私有設(shè)置字符集方法中mysqli_set_charset()函數(shù)將字符集設(shè)置為“utf8”。
3.2.2 數(shù)據(jù)的查詢、增加、刪除、修改操作
通過對(duì)數(shù)據(jù)進(jìn)行查詢、增加、刪除、修改4大類SQL語句執(zhí)行的結(jié)果詳細(xì)分析,可以把它們分類為兩大組:增加、刪除、修改SQL語句為一組,該組共同的特性就是執(zhí)行結(jié)果為成功或者失敗。查詢SQL語句單獨(dú)為一組,但是查詢結(jié)果還需要分為3種情況,即一維數(shù)組、二維數(shù)組和記錄數(shù)。增加、刪除、修改(insert,update,set,drop)SQL語句的操作實(shí)現(xiàn)采用編寫公共的執(zhí)行SQL語句的方法public function exec($sql),執(zhí)行成功返回true,執(zhí)行失敗返回false。將傳進(jìn)來$sql語句轉(zhuǎn)成小寫,$sql=strtolower($sql);判斷是不是select語句,先轉(zhuǎn)換為小寫,前6個(gè)字母全部提取與select對(duì)比,是select語句終止執(zhí)行,否則返回執(zhí)行的結(jié)果,return mysqli_query($this->link,$sql)。查詢(select)的操作實(shí)現(xiàn)采用編寫的私有的執(zhí)行SQL語句的方法private function query($sql),結(jié)果集還需要進(jìn)一步執(zhí)行,所有設(shè)置為私有的,執(zhí)行成功返回結(jié)果集,執(zhí)行失敗返回false。不是select語句終止執(zhí)行,否則返回執(zhí)行的結(jié)果(結(jié)果集對(duì)象),需要在類中進(jìn)一步處理,return mysqli_query($this->link,$sql)。公共獲取單行數(shù)據(jù)的方法public function fetchone($sql,$type=3),執(zhí)行SQL語句,調(diào)用query()并返回結(jié)果集對(duì)象,return mysqli_fetch_array($result,$types[$type]),返回一維數(shù)組。Public function fetchall($sql,$type=3),return mysqli_fetch_all($result,$types[$type]),公共獲取多行數(shù)據(jù)的方法,返回二維數(shù)組。獲取記錄數(shù)的方法public function rowCount($sql),返回記錄數(shù),return mysqli_num_rows($result)。
學(xué)生管理工作是學(xué)校的核心工作,為了讓工作智能化、科學(xué)化、高效化,本文基于PHP+MySQL+Apach組合技術(shù)進(jìn)行了分析探討,設(shè)計(jì)與實(shí)現(xiàn)了學(xué)生信息管理系統(tǒng),有效解決了目前學(xué)生信息管理出現(xiàn)的問題。本系統(tǒng)還可以擴(kuò)展其他功能模塊,讓學(xué)生信息管理系統(tǒng)更加完善。