余學杰 沈俊輝 北京中醫藥大學信息中心 北京 100029
張 紅 田潤平 北京中醫藥大學研究生院 北京 100029
防止漏報信息的網頁設計
余學杰 沈俊輝 北京中醫藥大學信息中心 北京 100029
張 紅 田潤平 北京中醫藥大學研究生院 北京 100029
防止漏報信息網頁設計研究的目的是要找到控制考生填寫所有數據的網頁制作方法。研究中使用了邏輯運算的方法,尋求保證邏輯值為真的網頁結構設計。研究的結果是找到了控制考生填寫所有報名數據的充要條件。根據這個充要條件得到結論,只要充要條件成立,則可以保證考生填寫了所有的報名數據,并且網頁的設計方式并不是一種形式。
網頁設計;充要條件;邏輯值;博士研究生招生報名
為了方便全國各地考生報考北京中醫藥大學博士研究生,校研究生院建立了博士研究生招生報名網站。教育部要求報名參加博士研究生入學考試的考生必須填寫八十多項信息的報名表。圍繞著如何讓考生在報名網站填寫八十多項信息,我們進行了一系列網頁設計的研究。其中,在防止考生漏報信息的環節上,重點研究了要達到考生必須將信息填寫完全的目標的充要條件,并以此作為考生填表網頁設計的依據。
博士招生網站利用網頁頁面讓報考考生填寫報名表,服務器中的數據庫接收和保存考生填報數據。一方面方便全國各地考生在本地報名、填表;另一方面借此提高招生工作的自動化程度,減少工作人員對于考生信息的錄入操作。
博士報名表填寫項目眾多,將其分散在多個網頁頁面讓考生填寫。填寫完一頁,數據庫存儲一頁數據。為了讓考生將所有的網頁頁面中的報名信息填寫完全、防止遺漏,給每個報考考生設置了一個參數——報名號,這個參數在招生的后續工作中需要繼續使用。完全填寫報名表各個項目后,才能獲取這個參數,以此來控制考生填寫所有信息項目,完成報名信息的采集工作。滿足此設計思路的報名數據填寫流程如圖1所示。
首先設計每頁報名數據填寫的檢驗。報名數據頁顯示部分報名所需填寫項目,并有提交數據到服務器數據庫的按鈕。考生在報名數據頁填寫內容,有幾種可能的情況:未填寫或未填寫完頁內項目,中途退出;頁內有未填寫項,就單擊提交數據按鈕上傳數據;完全填寫了頁內所有項目后上傳數據。對于這幾種情況的設計分別為:中途退出,不向數據庫傳送數據,數據庫內相應報名項仍為空白;只要單擊提交按鈕,本頁檢驗系統就進行本頁完全填寫的檢驗,有未填寫項,就會停滯在本頁面,數據庫內相應表項仍為空白;本頁檢驗系統進行本頁完全填寫的檢驗,驗證全部項目填寫后將考生數據存儲在數據庫中,為考生打開下一數據頁。利用網頁設計技術可以實現考生按照網頁頁面順序填寫分布在各個網頁上的信息,經檢驗完全填寫完本網頁頁面中的項目后,才能進入下一網頁頁面報名項目的填寫。否則,仍然停留在本頁面,等待考生完成各個項目的填寫。

圖1 報名表填寫流程示意圖

圖2 隱含路徑示意圖

圖4 隨機填寫頁面示意圖
對于不熟悉網頁設計技術的考生,將會沿此路徑獲取報名號,達到設計目標。對于熟悉網頁設計技術的考生,這里隱含著另外到達獲取報名號的路徑,只要知道后續頁面文件名,就可以跳過前面頁面設置的檢驗條件,進入后續頁面,只要知道了獲得報名號頁面的文件名,那么前面各頁的檢驗形同虛設,讓考生全部填寫報名信息的設計目標就會落空。其路徑如圖2所示。
填寫報名數據的網頁頁面設計,就是要杜絕跳過填寫界面,堵塞網頁設計中的漏洞,確保信息采集任務的完成。

圖3 獲取報名號頁面修改示意圖
假設網頁頁面的集合P={P1,P2,……, Pi,……,Pn},共有n頁信息需要考生填寫。每頁考生需要填寫的項目的集合是P i= {Ai1,Ai2,……,Ain},共有n項信息需要考生填寫。每項需要填寫的信息Aij填寫了邏輯值為真,沒有填寫邏輯值為假。每頁進行的“本頁完全填寫”檢驗為Ai1∧Ai2∧……∧Ain,即各個填寫元素之間進行“邏輯與運算”。那么,一個頁面的集合中,只有Aij的邏輯值都為真,與運算的結果才為真,Pi的邏輯值才為真。網頁中的填寫項目都填寫了,此頁的“本頁完全填寫”檢驗結果才能為真。如果考生按照頁面順序,完成了所有項目的填寫,那么P={P1∧P2∧…∧Pi…∧Pn}的邏輯值也為真。
如果第i頁面內具有未填寫的項目,提交數據時,該頁的Pi值為假,數據沒有完成向數據庫的提交,頁內所有需填寫的項目Aij都被還原為空,其值都為假。即Pi值為真時,Aij邏輯值為真;Pi值為假時,Aij邏輯值為假。
P值為真,應當作為獲取報名號的充要條件。即所有報名數據頁的數據全部填寫,P值為真,才能獲取報名號;獲取報名號時,所有報名數據全部填寫,P值為真。
根據隱含路徑的圖示可知,利用隱含路徑可以避開P值的檢驗。隱含路徑使得P值為真不能成為獲取報名號的充要條件。要保證P值為真確為獲取報名號的充要條件,必須對網頁設計進行相應的修改。
在獲取報名號時,應先對P值是否為真進行檢驗,將獲取報名號的路徑控制成唯一。據此,獲取報名號網頁設計修改如下圖所示。
網頁這樣修改,保證了P為真成為獲取報名號的充要條件。無論是否存在到達獲取報名號頁面的隱含路徑,進入獲取報名號頁面都進行P為真的檢驗。P為真,獲取報名號;P為假,不能獲取報名號。
上面從理論論證了在獲取報名號頁面對P值驗證,此時P值為真時所有項目一定完全填寫了。但是實際操作中對P值進行檢驗是不現實的。P集合中的元素是所有報名表的填報項目,集中在一頁進行檢驗耗時太久。
在這里設定一個新的集合Pa={A11, A21,……,An1},其中元素分別取自于集合P1,P2,……Pn,共有n個元素。獲取報名號頁面中的P檢驗用Pa值的檢驗代替,Pa作為獲取報名號的充要條件。需要證明,對Pa值的檢驗完全等價于對P值的檢驗。
證明:
Pa值為真,則A11∧A21……∧An1為真,那么元素A11,A21,……,An1的值一定都為真。這是由于參加邏輯與運算的各個元素為真時,邏輯與才能為真。
Ai1為真時,Pi也一定為真。這是因為只有通過了“本頁完全填寫”的檢驗,頁內填寫項都被完全填寫,未通過“本頁完全填寫”檢驗,頁內填寫項均為空的設計,保證了Pi為真,Ai1一定為真P值為真。Ai1為真時,第i頁一定填寫完全了,經過了Pi的檢驗。
Pa值為真,則P1∧P2∧……∧Pn的值為真。
Pa值與P值等價。Pa可以作為獲取報名號的充要條件。
研究了要保證每頁都填寫后才得到報名號的充要條件和充要條件的替代集合后,得到結果:每個數據填充頁都要進行數據是否完全填充的檢驗。在獲取報名號的頁面,抽取每個數據填充頁的一個項目進行檢驗,它們都被填寫了,則所有數據都被填寫了。這樣就可以獲得報名號。否則,仍然有未填寫的項目,不能獲取報名號。在此設置了充要條件,彌補了隱含路徑的漏洞。
在獲取報名號頁面設置判別條件,此判別條件是獲取報名號的充要條件,就可以控制所有的報名數據全部被填寫。在獲取報名號頁面設置了充要條件檢驗,使得到達該頁面的路徑與能否獲取報名號無關。即頁面訪問的設計不但可以是順序訪問形式,也可以隨機訪問形式,跳躍式訪問,只要保證每頁驗證和獲取報名號前驗證即可。
10.3969/j.issn.1001-8972.2011.11.064
余學杰,碩士,副教授,碩導,信息管理、計算機網絡應用等。