陳偉康 李廣用
摘? 要:在現(xiàn)代課堂教學(xué)中,學(xué)生的考勤是一個(gè)煩瑣和重要的教學(xué)環(huán)節(jié),采用傳統(tǒng)的點(diǎn)名方式需要占用寶貴課堂時(shí)間,利用PHP5課堂簽到系統(tǒng),使用開源的平臺(tái)搭建系統(tǒng)運(yùn)行環(huán)境,很好地完成點(diǎn)名簽到功能,無須大量的資金、第三方資源和手機(jī)等等輔助工具,方便了任課教師的考勤工作,實(shí)現(xiàn)了學(xué)生簽到數(shù)據(jù)的信息化管理,為課堂教學(xué)提供了很好的幫助。
關(guān)鍵詞:二維碼;簽到;幸運(yùn)數(shù)字;數(shù)據(jù)庫(kù)
中圖分類號(hào):TP311.5? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):2096-4706(2021)01-0013-05
Design and Implementation of Class Attendance System Based on PHP
CHEN Weikang,LI Guangyong
(Shanwei Institute of Technology,Shanwei? 516600,China)
Abstract:In the modern classroom teaching,the students attendance is a tedious and important teaching link,uses the traditional roll call way to need to occupy the precious class time,using PHP5 classroom check-in system,the open source platform is used to build the system running environment,and the roll call check-in function is well completed,and does not need a lot of funds and third-party resources and mobile phones and other auxiliary tools,which is convenient for teachers to check their attendance,the information management of student check-in data is realized,which provides a good help for classroom teaching.
Keywords:QR code;sign in;lucky number;database
0? 引? 言
由于現(xiàn)代科技的飛速發(fā)展,在“互聯(lián)網(wǎng)+”時(shí)代,當(dāng)前很多高等院校及職業(yè)類院校的教學(xué)管理中實(shí)現(xiàn)信息化應(yīng)用,越來越多的課程在多媒體教室完成教學(xué)任務(wù),尤其是高等學(xué)校的工科類課程,大多數(shù)課程是在多媒體教室完成。本人多年從事高職高專的計(jì)算機(jī)相關(guān)課程教學(xué)工作,考勤是一個(gè)很重要的一項(xiàng)教學(xué)考核環(huán)節(jié),也是一個(gè)很重要部分和難點(diǎn),考勤在課程成績(jī)?cè)u(píng)定時(shí)的占有一定的比例,科任教師的課程和學(xué)生數(shù)量都比較多,傳統(tǒng)的考勤是由科任教師自己完成,需要浪費(fèi)的寶貴課堂時(shí)間,代替點(diǎn)名或是遺漏點(diǎn)名現(xiàn)象普遍存在,還有可能出現(xiàn)一些人為的錯(cuò)誤,造成考勤的失誤,會(huì)影響到任課教師的情緒,從而影響到整個(gè)課堂的教學(xué)效果。如果讓學(xué)生的考勤班長(zhǎng)完成考勤,也存在因?yàn)橥瑢W(xué)之間的關(guān)系,礙于同學(xué)情面,包庇同學(xué)的情況,出現(xiàn)漏記或沒記的現(xiàn)象。如果任課教師為了方便,隨意對(duì)學(xué)生出勤情況做出評(píng)價(jià),對(duì)認(rèn)真上課的學(xué)生來說不公平,導(dǎo)致學(xué)校無法正確掌握學(xué)生的出勤,課程考勤也是課程成績(jī)的重要組成部分,直接影響本門課程的考核結(jié)果。
很多學(xué)校使用手機(jī)為主的考勤系統(tǒng),需要教師和學(xué)生都要攜帶手機(jī),這樣會(huì)讓學(xué)生在上課時(shí)不能專心聽講,學(xué)生會(huì)不自覺的查看和玩弄手機(jī),現(xiàn)在很多學(xué)校都提倡上課時(shí),學(xué)生不能攜帶手機(jī)。還有一個(gè)很重要的問題是,由于學(xué)校的人數(shù)眾多,造成手機(jī)的信號(hào)不好,可能在簽到時(shí)出現(xiàn)延時(shí)和緩沖錯(cuò)誤,浪費(fèi)流量,還有可能使用別人的手機(jī)進(jìn)行簽到,出現(xiàn)代替簽到現(xiàn)象。使用二維碼的考勤系統(tǒng),可以實(shí)現(xiàn)考勤功能,但是二維碼會(huì)出現(xiàn)學(xué)生幫助同學(xué)掃描的現(xiàn)象,使用二維碼還涉及版權(quán)問題,二維碼的發(fā)明人是來自日本Denso Wave公司的騰弘原,需要支付一定的版權(quán)費(fèi)用給日本的公司。
市面上有使用騰訊公司開發(fā)的微信小程序考勤簽到系統(tǒng)、二維碼考勤系統(tǒng)和智能刷卡等等,這需要借助其他公司的軟硬件來實(shí)現(xiàn),會(huì)花費(fèi)大量的金錢,需要穩(wěn)定的網(wǎng)絡(luò),還有設(shè)備的后期維護(hù)問題。還有的考勤系統(tǒng)應(yīng)用性好,適用面廣,系統(tǒng)內(nèi)容龐大,不方便購(gòu)買試用。
針對(duì)上面的問題,為了減少費(fèi)用,方便使用的原則,設(shè)計(jì)一個(gè)基于PHP的課堂簽到系統(tǒng),方便課堂考勤,設(shè)計(jì)并實(shí)現(xiàn)一個(gè)方便經(jīng)濟(jì)實(shí)用的快捷課堂簽到和管理功能。
1? 系統(tǒng)設(shè)計(jì)
1.1? 設(shè)計(jì)思路
使用PHP5+MYSQL+DREAMWEAVER+APACHE編寫的B/S模式的簽到系統(tǒng),客戶端學(xué)生使用Windows系統(tǒng)自帶的瀏覽器登錄教師機(jī)中的服務(wù)器網(wǎng)站,輸入學(xué)生的學(xué)號(hào)與姓名進(jìn)入,讓學(xué)生自己登錄教師機(jī)中的服務(wù)器數(shù)據(jù)庫(kù),完成簽到,存儲(chǔ)學(xué)生簽到的學(xué)號(hào),班級(jí),上課的學(xué)期,上課的周數(shù),星期數(shù),節(jié)數(shù),時(shí)間,任課教師,幸運(yùn)數(shù)字和學(xué)生機(jī)的IP地址等信息。主要是使用幸運(yùn)數(shù)字來控制學(xué)生是否有來上課,幸運(yùn)數(shù)字是科任教師自己隨機(jī)產(chǎn)生,在講完課程時(shí)告訴學(xué)生,這樣防止學(xué)生簽到完成就逃課。學(xué)生進(jìn)入簽到系統(tǒng)中只有8秒鐘時(shí)間完成輸入幸運(yùn)數(shù)字,超時(shí)系統(tǒng)自動(dòng)退出,幸運(yùn)數(shù)字的輸入時(shí)間為8秒鐘,是根據(jù)上課經(jīng)驗(yàn)來給出的,不一定是8秒,可以根據(jù)任課教師的具體情況來設(shè)定,這個(gè)時(shí)間不要太長(zhǎng),太長(zhǎng)會(huì)給學(xué)生替簽的時(shí)間,建議輸入幸運(yùn)數(shù)字時(shí)間為5秒至10秒之間最好,一般的學(xué)生不可能在5秒至10秒之間完成替簽。為了很好地防止學(xué)生替同學(xué)簽到,還要每一節(jié)課堂,最好只能簽到一次,只有在1分鐘左右的誤差,簽到數(shù)據(jù)是正常現(xiàn)象,如果超出這個(gè)時(shí)間范圍是有問題的簽到數(shù)據(jù),這個(gè)時(shí)間可以通過后臺(tái)管理的電子表格處理中進(jìn)行操作完成對(duì)比。篩選出問題學(xué)生,對(duì)其進(jìn)行詢問,如果是存在作弊行為,進(jìn)行特殊標(biāo)記,再進(jìn)一步處理考勤數(shù)據(jù)。做到公平公正的進(jìn)行考勤,能夠很好地控制學(xué)生上課考勤,完成重要的課堂教學(xué)中的考勤環(huán)節(jié),為課程考核提供一個(gè)重要的依據(jù)。
1.2? 系統(tǒng)后臺(tái)設(shè)計(jì)
使用MySQL5.5創(chuàng)建一個(gè)簽到的數(shù)據(jù)庫(kù)文件(dianming.sql),在簽到的數(shù)據(jù)庫(kù)文件下創(chuàng)建五個(gè)表,分別為用戶管理表(admin),如表1所示,用于管理員登錄查詢,使用權(quán)限等級(jí)限制,任課教師信息表(teacher),如表2所示,存放任課教師的基本信息,簽到學(xué)生信息表(student),如表3所示,存放要簽到學(xué)生的信息內(nèi)容,簽到表(dm),如表4所示,用于存放學(xué)生簽到結(jié)果的信息內(nèi)容。使用記錄表(jilu),存儲(chǔ)使用信息,如表5所示。
1.3? 程序的功能結(jié)構(gòu)
使用PHP加MYSQL數(shù)據(jù)庫(kù)完成簽到功能,實(shí)現(xiàn)數(shù)據(jù)管理,為教學(xué)輔助提供幫助。簽到系統(tǒng)主要設(shè)計(jì)分為兩大部分,前臺(tái)是實(shí)現(xiàn)簽到功能,后臺(tái)實(shí)現(xiàn)的是簽到數(shù)據(jù)管理。
(1)系統(tǒng)的功能結(jié)構(gòu)圖如圖1所示。
(2)后臺(tái)管理模塊是管理員或教師實(shí)現(xiàn)簽到數(shù)據(jù)的管理,導(dǎo)入需要簽到人員信息,設(shè)置簽到的幸運(yùn)數(shù),簽到數(shù)據(jù)的修改和編輯,導(dǎo)出簽到數(shù)據(jù)為常見的電子表格。后臺(tái)管理結(jié)構(gòu)圖如圖2所示。
(3)學(xué)生完成簽到,需要進(jìn)入一個(gè)復(fù)雜的登錄,才能進(jìn)入簽到界面,為了防止學(xué)生出現(xiàn)替簽現(xiàn)象,讓學(xué)生沒有多余的時(shí)間給其他同學(xué)簽名,如果出現(xiàn)了簽到時(shí)間差異比較大的情況,就可以判斷為替簽,可以由科任老師自己進(jìn)行比對(duì)。簽到系統(tǒng)的流程圖如圖3所示。
2? 程序的實(shí)現(xiàn)
簽到系統(tǒng)的主頁(yè)面,使用DREAMWEAVER+CSS完成前臺(tái)設(shè)計(jì),主要功能是讓學(xué)生可以選擇第幾周,幾星期幾,第幾節(jié)的上課信息,設(shè)計(jì)主要是靜態(tài)網(wǎng)頁(yè)格式,不采用復(fù)雜的界面設(shè)計(jì),做到大方美觀簡(jiǎn)潔,進(jìn)入了之后輸入學(xué)生自己的學(xué)號(hào)和姓名,進(jìn)行查詢服務(wù)器中的學(xué)生信息表是否存在的上課學(xué)生名單,如果查詢錯(cuò)誤,彈出一個(gè)錯(cuò)誤提示的對(duì)話框,如果查詢正確,可以跳轉(zhuǎn)到要簽到系統(tǒng)的主要頁(yè)面,就是輸入任課教師給出的本節(jié)課的幸運(yùn)數(shù)字,輸入完成點(diǎn)擊完成按鈕提交,就可以完成本節(jié)課簽到任務(wù)。簽到系統(tǒng)的運(yùn)行效果圖,如圖4所示。
整個(gè)簽到過程不超過1分鐘,比傳統(tǒng)的人工點(diǎn)名過程要快很多,也方便很多,實(shí)現(xiàn)了本節(jié)課的簽到數(shù)據(jù)的存儲(chǔ),可以完成更多信息的存儲(chǔ),例如簽到時(shí)間,學(xué)生的簽到周數(shù),節(jié)數(shù)和星期數(shù)等等。方便任課教師的學(xué)期末考勤成績(jī)的處理。幸運(yùn)數(shù)字的輸入時(shí)間是8秒以內(nèi),如果學(xué)生沒有在8秒以內(nèi)輸入幸運(yùn)數(shù)字,系統(tǒng)也會(huì)自動(dòng)提交,保存的幸運(yùn)數(shù)字內(nèi)容顯示為超時(shí),如果學(xué)生由于意外沒能在8秒內(nèi)完成簽到,可以在課間跟任課教師說明,任課教師在到系統(tǒng)管理的后臺(tái)修改,學(xué)生輸入幸運(yùn)數(shù)字的界面運(yùn)行效果圖,如圖5所示。
保存的學(xué)生簽到信息有學(xué)號(hào)、姓名、幸運(yùn)數(shù)字和使用的IP地址等等,這些信息是存儲(chǔ)在MySQL數(shù)據(jù)庫(kù)中的,由于MySQL數(shù)據(jù)庫(kù)中的數(shù)據(jù)容易被打開,為了數(shù)據(jù)的安全性,所以程序?qū)W(xué)生的簽到信息進(jìn)行了加密處理,假如MySQL數(shù)據(jù)庫(kù)的數(shù)據(jù)被打開,也不會(huì)顯示出學(xué)生的簽到信息,只會(huì)顯示出一些加密后的字符,保障了學(xué)生簽到信息的安全,一般的人員不能夠查看到簽到信息。
為了防止學(xué)生的惡意網(wǎng)絡(luò)攻擊,讓學(xué)生不能超時(shí)登錄,一般建議在學(xué)生簽完時(shí)關(guān)掉服務(wù)器,就是關(guān)閉教師機(jī)中的服務(wù)器,讓學(xué)生不能在短時(shí)間內(nèi)獲得破解服務(wù)器機(jī)會(huì),修改后臺(tái)的考勤數(shù)據(jù),也是保護(hù)簽到數(shù)據(jù)的安全。系統(tǒng)還能登記客戶端的登錄IP地址,來查看學(xué)生機(jī)的登錄情況。防止學(xué)生在同一臺(tái)的計(jì)算機(jī)登錄考試,很好地做到防止重復(fù)簽到現(xiàn)象。
簽到系統(tǒng)的后臺(tái)設(shè)計(jì),是要輸入后臺(tái)進(jìn)入的地址,輸入管理員的賬號(hào)和密碼,進(jìn)入到后臺(tái)管理界面,可以查看已經(jīng)簽到的學(xué)生的基本信息,還可以設(shè)置本次簽到的幸運(yùn)數(shù)字,這個(gè)幸運(yùn)數(shù)字是來防止學(xué)生偽造教師給的幸運(yùn)數(shù)字,控制學(xué)生不能夠自己任意偽造輸入不正確的幸運(yùn)數(shù)字,只能輸入任課教師本節(jié)課給出的幸運(yùn)數(shù)字進(jìn)行簽到,保障簽到的數(shù)據(jù)的公平公正性。為了方便任課教師處理簽到數(shù)據(jù),使用到了PHP的對(duì)軟件Excel 2010文件操作,還可導(dǎo)出所有的簽到信息為電子表格文件,導(dǎo)出電子表格文件關(guān)鍵代碼為:
include_once('/PHPExcel/Writer/IWriter.php') ;//插入需要操作電子表格的類文件一次
include_once('/PHPExcel/Writer/Excel5.php') ; //插入需要操作電子表格的類文件一次
include_once('/PHPExcel.php') ; //插入需要操作電子表格的類文件一次
include_once('/PHPExcel/IOFactory.php') ; //插入需要操作電子表格的類文件一次
$obj_phpexcel1 = new PHPExcel();//創(chuàng)建一個(gè)新的類
$obj_phpexcel1->getActiveSheet()->setCellValue('a1','編號(hào)'); //在電子表格中的sheet表中的單元格a1中輸入編號(hào)
$obj_phpexcel1->getActiveSheet()->setCellValue('b1','學(xué)號(hào)');? //在電子表格中的sheet表中的單元格表b1中輸入學(xué)號(hào)
$obj_phpexcel1->getActiveSheet()->setCellValue('c1','姓名');? //在電子表格中的sheet表中的單元格c1中輸入姓名
$obj_phpexcel1->getActiveSheet()->setCellValue('d1','班級(jí)');? //在電子表格中的sheet表中的單元格d1中輸入班級(jí)
$obj_phpexcel1->getActiveSheet()->setCellValue('e1','周數(shù)');? //在電子表格中的sheet表中的單元格e1中輸入班級(jí)
$obj_phpexcel1->getActiveSheet()->setCellValue('f1','星期');? //在電子表格中的sheet表中的單元格f1中輸入班級(jí)
$obj_phpexcel1->getActiveSheet()->setCellValue('g1','節(jié)數(shù)'); //在電子表格中的sheet表中的單元格g1中輸入節(jié)數(shù)
$obj_phpexcel1->getActiveSheet()->setCellValue('h1','IP'); //在電子表格中的sheet表中的單元格h1中輸入IP
$obj_phpexcel1->getActiveSheet()->setCellValue('i1','幸運(yùn)數(shù)'); //在電子表格中的sheet表中的單元格i1中輸入幸運(yùn)數(shù)
$obj_phpexcel1->getActiveSheet()->setCellValue('j1','時(shí)間'); //在電子表格中的sheet表中的單元格j1中輸入時(shí)間
$obj_phpexcel1->getActiveSheet()->setCellValue('k1','課程'); //在電子表格中的sheet表中的單元格k1中輸入課程
$obj_phpexcel1->getActiveSheet()->setCellValue('l1','老師'); //在電子表格中的sheet表中的單元格l1中輸入老師
$obj_phpexcel1->getActiveSheet()->setCellValue('m1','老師的數(shù)'); //在電子表格中的sheet表中的單元格m1中輸入老師的數(shù)
$obj_phpexcel1->getActiveSheet()->setCellValue('n1','學(xué)期'); //在電子表格中的sheet表中的單元格n1中輸入學(xué)期
include_once("conn/conn.php");/插入數(shù)據(jù)庫(kù)連接文件一次
$sql1="select*from dm";//使用sql語句的查詢dm表所有記錄
$result1=mysql_query($sql1,$connID);//進(jìn)行查詢
$i=1;//設(shè)置初始i變量為1
while($myrow=mysql_fetch_array($result1)){//使用while循環(huán)讀取dm表中記錄
$i++;? //使用i變量自我相加
$obj_phpexcel1->getActiveSheet()->setCellValue('a'.$i,$myrow['id']); //讀取dm表中id字段內(nèi)容放入a列中,從第二行開始放入。
$obj_phpexcel1->getActiveSheet()->setCellValue('b'.$i,iconv('gbk','utf-8',base64_decode($myrow['xh'])));? //讀取dm表中學(xué)號(hào)字段內(nèi)容放入b列中,從第二行開始放入,還要進(jìn)行解密讀取的字符,再進(jìn)行編碼轉(zhuǎn)換。
$obj_phpexcel1->getActiveSheet()->setCellValue('c'.$i,iconv('gbk','utf-8',base64_decode($myrow['xm']))); //讀取dm表中姓名字段內(nèi)容放入c列中,從第二行開始放入,還要進(jìn)行解密讀取的字符,再進(jìn)行編碼轉(zhuǎn)換。
$obj_phpexcel1->getActiveSheet()->setCellValue('d'.$i,iconv('gbk','utf-8',base64_decode($myrow['bj']))); //讀取dm表中班級(jí)字段內(nèi)容放入d列中,從第二行開始放入,還要進(jìn)行解密讀取的字符,再進(jìn)行編碼轉(zhuǎn)換。
$obj_phpexcel1->getActiveSheet()->setCellValue('e'.$i,iconv('gbk','utf-8',base64_decode($myrow['zhoushu']))); //讀取dm表中周數(shù)字段內(nèi)容放入e列中,從第二行開始放入,還要進(jìn)行解密讀取的字符,再進(jìn)行編碼轉(zhuǎn)換。
$obj_phpexcel1->getActiveSheet()->setCellValue('f'.$i,iconv('gbk','utf-8',base64_decode($myrow['xingqi']))); //讀取dm表中學(xué)期字段內(nèi)容放入f列中,從第二行開始放入,還要進(jìn)行解密讀取的字符,再進(jìn)行編碼轉(zhuǎn)換。
$obj_phpexcel1->getActiveSheet()->setCellValue('g'.$i,iconv('gbk','utf-8',base64_decode($myrow['jieshu']))); //讀取dm表中節(jié)數(shù)字段內(nèi)容放入g列中,從第二行開始放入,還要進(jìn)行解密讀取的字符,再進(jìn)行編碼轉(zhuǎn)換。
$obj_phpexcel1->getActiveSheet()->setCellValue('h'.$i,iconv('gbk','utf-8',base64_decode($myrow['ip']))); //讀取dm表中IP字段內(nèi)容放入h列中,從第二行開始放入,還要進(jìn)行解密讀取的字符,再進(jìn)行編碼轉(zhuǎn)換。
$obj_phpexcel1->getActiveSheet()->setCellValue('i'.$i,iconv('gbk','utf-8',base64_decode($myrow['xingyunshu']))); //讀取dm表中幸運(yùn)數(shù)字字段內(nèi)容放入i列中,從第二行開始放入,還要進(jìn)行解密讀取的字符,再進(jìn)行編碼轉(zhuǎn)換。
$obj_phpexcel1->getActiveSheet()->setCellValue('j'.$i,iconv('gbk','utf-8',base64_decode($myrow['shijian']))); //讀取dm表中時(shí)間字段內(nèi)容放入j列中,從第二行開始放入,還要進(jìn)行解密讀取的字符,再進(jìn)行編碼轉(zhuǎn)換。
$obj_phpexcel1->getActiveSheet()->setCellValue('k'.$i,iconv('gbk','utf-8',$myrow['kechengming'])); //讀取dm表中課程名稱字段內(nèi)容放入k列中,從第二行開始放入,還要進(jìn)行解密讀取的字符,再進(jìn)行編碼轉(zhuǎn)換。
$obj_phpexcel1->getActiveSheet()->setCellValue('l'.$i,iconv('gbk','utf-8',$myrow['dianmingteacher'])); //讀取dm表中點(diǎn)名老師字段內(nèi)容放入l列中,從第二行開始放入,還要進(jìn)行解密讀取的字符,再進(jìn)行編碼轉(zhuǎn)換。
$obj_phpexcel1->getActiveSheet()->setCellValue('m'.$i,iconv('gbk','utf-8',base64_decode($myrow['teacherxys']))); //讀取dm表中老師給的幸運(yùn)數(shù)字段內(nèi)容放入m列中,從第二行開始放入,還要進(jìn)行解密讀取的字符,再進(jìn)行編碼轉(zhuǎn)換。
$obj_phpexcel1->getActiveSheet()->setCellValue('n'.$i,iconv('gbk','utf-8',base64_decode($myrow['xueqi']))); //讀取dm表中學(xué)期字段內(nèi)容放入n列中,從第二行開始放入,還要進(jìn)行解密讀取的字符,再進(jìn)行編碼轉(zhuǎn)換。
}
$obj_Writer=PHPExcel_IOFactory::createWriter($obj_phpexcel1,'Excel5');//使用電子表格的excel15
$data=date("Ymd");//取得當(dāng)前的時(shí)間
$filename = $data."qd.xls";//設(shè)置以當(dāng)前日期為名稱的文件名保存
ob_end_clean();
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");
header('Content-Disposition:inline;filename="'.$filename.'"');
header("Content-Transfer-Encoding: binary");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Pragma: no-cache");
$obj_Writer->save('php://output'); //保存從數(shù)據(jù)庫(kù)中讀取的數(shù)據(jù)
echo "";//數(shù)據(jù)庫(kù)保存完成彈出一個(gè)提示框。
只要掌握一點(diǎn)計(jì)算機(jī)基本應(yīng)用基礎(chǔ)的教師,就可以在電子表格Excel文件中進(jìn)行處理,篩選出需要的學(xué)生簽到信息,匹配簽到信息,查看簽到信息是否正常,是否在同一臺(tái)機(jī)器進(jìn)行簽到的情況等等。可以修改學(xué)生的簽到信息內(nèi)容,可以初始化簽到數(shù)據(jù),在初始化簽到數(shù)據(jù)時(shí)需要謹(jǐn)慎,在沒有備份的情況下,刪除的數(shù)據(jù)就會(huì)沒有了,不要隨意刪除,后臺(tái)管理的運(yùn)行界面。
簽到系統(tǒng)的數(shù)據(jù),在幾百個(gè)人以內(nèi)規(guī)模測(cè)試中完全可以正常實(shí)現(xiàn),對(duì)于更大規(guī)模的人數(shù)測(cè)試還沒完成,在今后的設(shè)計(jì)中完善程序功能。
簽到數(shù)據(jù)的安全設(shè)置,是對(duì)簽到的數(shù)據(jù)進(jìn)行字符加密,數(shù)據(jù)加密前,簽到的數(shù)據(jù)可以看到學(xué)生的全部信息,容易造成數(shù)據(jù)的泄露,和數(shù)據(jù)的更改,為了防止這種情況出現(xiàn),還設(shè)計(jì)了一個(gè)用戶使用記錄表,來保存后臺(tái)管理用戶使用情況,保存是哪個(gè)用戶什么時(shí)候使用了本系統(tǒng),什么時(shí)間,系統(tǒng)管理員可以通過這個(gè)記錄來反查是哪個(gè)時(shí)間點(diǎn)的任課教師的一些操作。還要把數(shù)據(jù)庫(kù)中的所有的數(shù)據(jù)進(jìn)行統(tǒng)一加密,讓使用者和簽到的學(xué)生不容易看到原始信息,避免數(shù)據(jù)的泄露。數(shù)據(jù)庫(kù)的后臺(tái)數(shù)據(jù)加密。
第一次使用簽到系統(tǒng),需要在phpStudy2014的支持下運(yùn)行[1-4],把編寫好的文件夾放到phpStudy2014的WWW文件下,再導(dǎo)入系統(tǒng)需要使用的數(shù)據(jù)庫(kù)文件,使用的任課教師只要點(diǎn)擊運(yùn)行phpStudy2014,就可運(yùn)行簽到系統(tǒng)服務(wù),phpStudy2014里綜合了Apache和MySQL。就是把教師機(jī)當(dāng)作一個(gè)服務(wù)器網(wǎng)站來使用,學(xué)生機(jī)通過瀏覽器訪問教師機(jī),完成簽到任務(wù)。任課教師還需要導(dǎo)入簽到的姓名和學(xué)號(hào),只需要在電子表格文件中輸入,再通過后臺(tái)的管理界面導(dǎo)入簽到名單,這里需要注意的地方是,導(dǎo)入的電子表格文件的列數(shù)要和數(shù)據(jù)庫(kù)中的學(xué)生信息表的字段數(shù)一樣,如果不一樣會(huì)出現(xiàn)導(dǎo)入錯(cuò)誤,就不能導(dǎo)入簽到的學(xué)生信息表內(nèi)容,造成不能系統(tǒng)使用。電子表格的列數(shù)為五列,分別為ID,姓名,學(xué)號(hào),班級(jí),學(xué)期。這個(gè)可以參考學(xué)生名單導(dǎo)入的樣例文件,按照使用幫助說明操作[5,6]。
如果有條件的學(xué)校,可以把簽到放到學(xué)校的服務(wù)器中。本系統(tǒng)的優(yōu)點(diǎn)是,使用簡(jiǎn)單,使用成本低,能夠很好地完成學(xué)生的簽到功能,無須大量的資金和第三方來實(shí)現(xiàn)簽到,很好的輔助教學(xué)任務(wù),使用的工具是開源免費(fèi),不涉及版權(quán)問題。缺點(diǎn)是第一次使用系統(tǒng)時(shí),需要配置系統(tǒng)的服務(wù),和調(diào)試系統(tǒng)運(yùn)行,需要有一定計(jì)算機(jī)相關(guān)知識(shí)的人員完成,對(duì)于完全不懂的任課教師有些困難。為了解決這個(gè)問題,編寫一個(gè)怎樣配置系統(tǒng)運(yùn)行的使用幫助文檔,來幫助初次使用者正常使用??赡茉诓煌貐^(qū),受不同環(huán)境的影響,還會(huì)出現(xiàn)不可預(yù)測(cè)的問題,要在使用中不斷完善系統(tǒng),還有就是數(shù)據(jù)的加密算法,使用系統(tǒng)自帶的加密函數(shù),沒有添加自己設(shè)計(jì)的算法,數(shù)據(jù)的安全性沒有那么好,需要在今后的設(shè)計(jì)中完善這個(gè)缺陷。
3? 結(jié)? 論
簽到系統(tǒng)很好完成了學(xué)校任課教師的點(diǎn)名簽到功能,本人已經(jīng)使用了四個(gè)學(xué)期的測(cè)試,共16個(gè)班級(jí)的學(xué)生,測(cè)試效果良好,運(yùn)行穩(wěn)定,可以實(shí)現(xiàn)學(xué)生的快速簽到,無須大量的資金和第三方,不用攜帶手機(jī)等輔助工具,極大的方便任課教師的考勤工作,實(shí)現(xiàn)了簽到數(shù)據(jù)的信息化管理,簽到數(shù)據(jù)也有一定的安全措施,保障簽到數(shù)據(jù)的公平公正,為輔助課堂教學(xué)提供了很好的幫助。
參考文獻(xiàn):
[1] 軟件開發(fā)技術(shù)聯(lián)盟.PHP自學(xué)視頻教程 [M].北京:清華大學(xué)出版社,2014.
[2] 明日科技.PHP項(xiàng)目開發(fā)全程實(shí)錄:第4版 [M].北京:清華大學(xué)出版社,2018.
[3] 潘凱華,劉中華.PHP從入門到精通:第2版 [M].北京:清華大學(xué)出版社,2011.
[4] 徐俊強(qiáng),史香雯.PHP+MySQL動(dòng)態(tài)網(wǎng)站設(shè)計(jì)實(shí)用教程 [M].北京:清華大學(xué)出版社,2015.
[5] 黑馬程序員.PHP基礎(chǔ)案例教程 [M].北京:人民郵電出版社,2017.
[6] 鄭阿奇.PHP實(shí)用教程:第2版 [M].北京:電子工業(yè)出版社,2011.
作者簡(jiǎn)介:陳偉康(1977—),男,漢族,廣東陸河人,計(jì)算機(jī)科學(xué)與技術(shù)講師,本科,研究方向:計(jì)算機(jī)程序語言設(shè)計(jì)與計(jì)算機(jī)應(yīng)用;李廣用(1978—),男,漢族,廣東陸河人,計(jì)算機(jī)科學(xué)與技術(shù)講師,本科,研究方向:計(jì)算機(jī)程序語言設(shè)計(jì)與計(jì)算機(jī)應(yīng)用。