【毕业设计之PHP系列】PHP课程网站络管理系统
摘? 要
管理系統(tǒng)是根據課程網站的需求而設計和實現的,主要 ?用于實現課程系統(tǒng)辦公人員對其辦公系統(tǒng)內所有公務員進行管理,實現對員工信息的查詢、錄入、修改和刪除;以及發(fā)布重要通知、最新信息和規(guī)章制度。通過“網上辦公,無紙辦公”,大大提高辦公效率,體現現代政府的高效職能。
關鍵詞:?????PHP, MySql, Apache, 數據庫,數據庫實現,數據源 ,電子
????????????????????????課程
????????????????????????????????????????????????????????????????????????
ABSTRACT
Ministry of Personnel Management Subsystem(MPMS)isdesigned and implements the function ?, ?in the need of ?the E-GovernmentAffair Net. ?And currently it mainly uses for?implementing the officer in?GovernmentAffair System manages all the clerks in its office system efficiently,and implements searching and inserting and modifying and deleting for the information?of all clerks,issuing important notice and lately personnel information?, bylaws and so on. With?‘Work on net, Work without paper’, that improves the efficiency of handling office business highly, that embodies?the powerful capability of the modern government.
Keywords:PHP, Mysql, Apache, database, DB implement, data source,E-GovermentAffair .
第一?章??????引言
§1.1 問題的提出
在電子計算機技術發(fā)展日新月異的今天,計算機技術、網絡技術和信息技術的發(fā)展和應用早已深入到了各行各業(yè),并發(fā)揮著它們的巨大潛力,特別是網絡的高速化、廣泛化發(fā)展和運用。在我國,各類企業(yè)的改革,一切都在朝著社會化、高效化、智能化發(fā)展,管理體制的改革更是進行著大手筆。但是,國家政府職能的改革程度還遠遠不夠。課程網站絡管理系統(tǒng)是計算機技術和網絡迅速發(fā)展的一個政府辦公應用解決方案。課程網站絡管理系統(tǒng)將Internet網絡技術與現代管理觀念相融合,針對信息技術的特點對辦公系統(tǒng)進行規(guī)劃和重構,對政府內部信息流進行優(yōu)化及合理配置,生成動態(tài)的、安全的、專有的數字化信息源,將辦公體系全面自動化,流程化,數字化。以此為橋梁,橫向連接同事間的交流與協(xié)同工作,縱向實現上下級一體化的高效辦公體系,從而更明確、更有效地支持政府的管理和決策。
§1.2 設計方案???
本系統(tǒng)采用B/S結構,所有的程序及數據都放在服務器上,終端在取得相應的權限后使用Web頁面瀏覽,錄入,修改等功能。在語言方面使用PHP語言,在數據庫上我們?yōu)榱斯?jié)約成本,采用了免費的MySQL數據庫(當然,也可以移植到Oracle上),服務器使用Apache?Web服務器。
處理流程如下圖:
???
?
? ? ? ?
§1.2.1 功能要求
通過“網上辦公,無紙辦公”,課程辦公系統(tǒng)充分利用強大的網絡資源,方便快捷、即時高效完成政府辦公。課程管理系統(tǒng)包括個人辦公平臺、領導辦公、行政辦公管理、公文管理、信訪管理、管理、財務管理、系統(tǒng)管理、電子郵件系統(tǒng)、公共信息等十一主要功能模塊組成,利用頁面和數據庫實現,體現出交互式網絡辦公。本子系統(tǒng)屬于管理模塊,將完成對政府系統(tǒng)中所有員工的個人信息和詳細信息、部門的簡要信息和詳細信息、個人信息的管理、工資信息的管理、考勤的管理等功能。本系統(tǒng)具有一定的實用性。
§1.2.2???實現形式
采用頁面對話交互方式進行,把頁面形成工具(DREAMWAVER4)和動態(tài)編輯工具(PHP)以及強大的數據庫支持(MYSQL)融為一體,達到完成功能塊目的。要求該功能塊具有整個系統(tǒng)的統(tǒng)一風格。
?????
§1.2.3 ?具體內容
????(一)???標題欄部分
采用“課程網站”統(tǒng)一標題頭,即:左為“網上辦公,無紙辦公”圖片,右為“人民政府為人民”,下為其他功能模塊的超鏈接。
??????????(二)???主體部分
(1)、規(guī)章制度:主要介紹政府機關進行管理的有關實施條例或制度,包括管理制度(細則A、細則B)、責權劃分表、考核規(guī)定、員工守則、員工聘用規(guī)定、員工聘用合同(正式、短期)、員工引薦擔保規(guī)定、勞動合同書規(guī)定、高級職員聘任書、服務自愿書等。
???????(2)、重要通知:主要用于單位發(fā)布有關重要通知,由新聞發(fā)布系統(tǒng)完成。
???????(3)、最新信息:主要用于單位發(fā)布有關最新信息,由新聞發(fā)布系統(tǒng)完成。
???????(4)、信息查詢:該模塊提供個人信息的簡要查詢和詳細查詢,部門的員工信息簡要查詢和詳細查詢。
???????(5)、管理員登錄模塊:主要用于管理員的登錄,即設置管理員的權限,包括個人信息的錄入、修改、刪除管理,新聞發(fā)布管理、工資信息的管理、考勤信息的管理、相片信息的管理等。
???????(6)、相關功能鏈接欄:主要用于適應用戶擴展功能,因為本系統(tǒng)目前為試用版,會根據用戶需求的改變進行功能設計與實現。
§1.3??系統(tǒng)運行環(huán)境
本子系統(tǒng)承接課程系統(tǒng),對運行環(huán)境的要求是:
§1.3.1 ??硬件需求
?????下列的配置是本次實際操作中的配置:
- 兼容Intel486等級以上的PC電腦。
- 64M以上的RAM。
- 15GB以上的硬盤空間。
- 48倍速以上的光驅。
- 1.44軟驅。
?????????????????????實際操作中可以略低于此配置。?
§1.3.2 ??軟件需求
???????本系統(tǒng)采用了目前最佳組合-LAMP,即:Linux + Apache + ?MySQL +PHP, 該組合具有更穩(wěn)定、高效能、更經濟的特點。
- 操作系統(tǒng)-Linux,采用“颶風Linux”。
- Web服務器軟件-Apache。
- 數據庫服務器與用戶端軟件-MySQL。
- 頁面應用軟件-PHP4。
除了上面這些動態(tài)網頁開發(fā)環(huán)境的需求,還有一些時在安裝時需要的軟件,在Linuz系統(tǒng)中都可以找到或到網上下載:
- C語言編輯器-將C語言源文件編譯成可執(zhí)行軟件的工具。
- Apxs-制作Apache動態(tài)模塊的工具。
- SecureEdit-跨平臺上傳文件的工具。
本次開發(fā)過程是:先在Window下編寫代碼,然后上傳到服務器進行調試。
第二章 ?設計的理論依據
§2.1 ?Linux + Apache + MySQL ?+ ?PHP ?最優(yōu)組合
現在的“網絡生態(tài)”已經不能只有展示的功能,凡是網上下單、網絡購物、檢索查找等都是在網上隨處可見的服務。這些功能的運作都牽涉到用戶的選擇、輸入數據以及服務端處理數據與回應等動作,所以這樣的網頁即為互動式網頁。也正是本系統(tǒng)所要采用的網絡形式。
在HTML文件的結構下使用互動式網頁就必須在服務器端另外增加這些處理信息的功能,通常是針對用途寫一個網頁應用程序來負責處理。而以互動式網頁存取得數據當然必須能長時間儲存,所以網頁應用程序就要能存取數據庫,在瀏覽器上顯示互動式網頁,如下圖所示:
??
?
通過以上的介紹您應該已經知道,如果是一個網站內容提供者(ICP),要提供互動式網頁的服務,必須要有WWW服務器,網頁應用程序和數據庫這三個成員,當然它們都必須在操作系統(tǒng)下執(zhí)行,所以把操作系統(tǒng)也算在內總共四項軟件。本系統(tǒng)采用了當今最佳組合――LAMP。 ???????????????????????
?
LAMP就是Linux、Apache、MySQL加上PHP。首先是Linux操作系統(tǒng)(免費!),這兩年在PC地舞臺上大放光明,尤其在server地使用上悄然威脅微軟的地位。Web服務器Apache(免費!)在全球的website有極大的使用率。數據庫MySQL (免費! ), 一個快速、穩(wěn)定的SQL數據庫服務器。PHP(免費! ), 扮演處理互動式信息的網頁應用程序的角色。除了穩(wěn)定、高效能之外,它們均免費,是最經濟的選擇,而且豐富的網絡資源與眾多的高手絕對不會讓你求教無門。
§2.2、PHP, Apache, Mysql , Linux介紹
§2.2.1 ?PHP 簡介
????????PHP的全名即是Hypertext Processor,最早的名稱由來則是來自PHP Tools(Personal HomePage Tools),PHP的程序引擎是一個公布源代碼的Open Source 成員。PHP是一種“服務器端的HTML嵌入式的描速語言(HTML - embedded ??scripting language)”。其語法混合了C、Java、Perl以及PHP式的新式語法,它比CGI或者Perl可更快速地執(zhí)行動態(tài)網頁,同時PHP的數據庫層操作功能強大,這使得PHP語言這幾年飛速發(fā)展,風靡全球。
?????????以下是PHP的基本特點:
- 開放源代碼――所有的源代碼都可以得到。
- 免費使用――PHP是一個免費軟件,盡可放心使用。
- 基于服務器端――由于PHP是在Web服務器端運行的,所以它的程序可以很大、很復雜而不會降低客戶端的運行速度。
- 跨平臺――PHP程序可以在UNIX、Linux或者Windows操作系統(tǒng)下運行。
- 嵌入HTML――PHP語言可以嵌入到HTM內部,則易學。
還有語言簡單、效率高、分析XML、數據庫模塊、文件存取、文本處理、復雜的變量,圖象處理等特點。
最新PHP4.0的特點:
- 別名――通過引用別名為變量賦值,給編程帶來極大方便。
- 擴充了API模塊――提供擴展接口模塊。
- 個性化的Java支持――PHP4.0和Java的交互。
- 對象和數組嵌套――實現功能更加強大的對象以及數組嵌套。
- 面向對象的編程――為面向對象的編程、構造類以及對象提供擴展的功能和新特征。
還包括如自動資源釋放、布爾類型、進程生成、COM/DCOM支持、與PHP3.0的兼容性很好、配置、加密支持、類型檢查、FTP支持、PHP4新增函數或功能增強函數、“Here”打印、HTTP Session fallback系統(tǒng)、ISAPI支持、內存、多維數組、其他類成員函數、對象重載支持、輸出緩沖支持、支持引用等特點。編寫好后,將其放在服務器的提供的Web的目錄里,通過IE瀏覽器可看到結果“我的第一個PHP程序!”。具體語法參考PHP4.0相關書籍。
§2.2.2 ??Apache 簡介
????????本系統(tǒng)的操作所使用的web服務器軟件為Apache。Apache是目前全世界的網站使用最多的服務器。在2000年2月十全世界有58.08%的使用率。同樣地,Apache的優(yōu)點也是穩(wěn)定、快速與開放,同時也有眾多的功能,并且可以在不同操作系統(tǒng)下執(zhí)行。前面的內容已經介紹了web 服務器負責完成傳送顯示在瀏覽器的 HTML 文件內容,而數據處理就是 PHP 程序的工作了。所以在服務主機使用PHP時必須將解讀PHP程序代碼的功能加到Apache ,也就是按裝Apache 的PHP 模塊(module)。以往如果要加入PHP模塊,就必須先將PHP的源代碼編譯成Apache 的模塊,再將Apache加上PHP功能模塊重新編譯。從PHP3開始就支持了Apache 的動態(tài)共享對象(Dynamic Shared Object , DSO)模塊的功能,也就是說PHP3可以編譯DSO模塊,Apache 只需在需要執(zhí)行時調用PHP3模塊就可以使用PHP3的功能。這樣以來,即使修改PHP、換裝新版本或是重新安裝PHP都可以不必 動用Apache ,當然PHP4 也可以編譯DSO模塊。
§2.2.3 ??MySQL 簡介
MySQL數據庫系統(tǒng)與PHP整合使用是一個高效率的組合。MySQL是一個多用戶(Multi-user)、多線程(Multi-thread)的SQL數據庫系統(tǒng),使用目前最普遍地數據庫標準語言:SQL(Structured Query Language)。MySQL包括了服務器端程序與多種 用戶端程序及程序庫,并且可以在不同平臺執(zhí)行。其特點還有穩(wěn)定、快速與高靈活性等。
MySQL有瑞典的T.c.X DataKonsultAB公司開發(fā)出來,開發(fā)的主要目的就是以快速、健全以及使用微目標,最初的開發(fā)即是因為該公司需要能在廉價的主機上執(zhí)行,優(yōu)于當時各種商用數據庫,且快速管理龐大數據庫的SQL服務器。MySQL是一個還在開發(fā)中的數據庫系統(tǒng),但是其效能已經非常優(yōu)秀。在MySQL網站(http://www.mysql.org)上你可以看到它們的使用記錄是以管理40個以上的數據庫,超過10000個表,同時其中還有500個以上的表超過7百萬記錄,而這些數據總共超過了10Gbytes的容量。
§2.2.4 ??Linux簡介
??????????操作系統(tǒng)最好的選擇當然是使用面費又穩(wěn)定的Linux系統(tǒng)。Linux是在1991年發(fā)展起來的與UNIX兼容的操作系統(tǒng),可以免費使用,它的源代碼可以自由傳播且可任人修改、充實、發(fā)展。Linux本身是一個完整的32位的多用戶、多任務操作系統(tǒng)。而本次開發(fā)過程使用的版本是颶風軟件公司出品的國產Linux操作系統(tǒng)。它是經漢化后形成的Linux操作系統(tǒng)。凡是Linux操作系統(tǒng)均可到網上下載。
§2.3 ??安裝及注意事項???????
????LAMP (Linux + Apache + MySQL + PHP/Perl/Python) 近幾年來,已經成為Web 社區(qū)的事實標準。我們將介紹LAMP組合的安裝,假定你的機器上已經安裝了Linux ,如果你對Linux 的安裝還有什么問題的話,可以去相關的一些開放源碼站點論壇上發(fā)表貼子,向其他網友尋求幫助。也可以向相關的廠商尋求技術支持。本文的LAMP中的 P,暫時解釋為PHP,A解釋為Apache,M解釋為MySQL,L當然解釋為Linux。所有LAMP組合中的軟件都是開放源代碼產品,所以您不必擔心產品的價格以及版權問題。相反,有廣大的開放源碼社區(qū)開發(fā)人員的不斷努力,這些產品的版本更新速度反而比那些昂貴的專有軟件更快。雖然Linux 因為界面問題,會讓您望而卻步,但是您不必擔心,現在,這些軟件都采用了瀏覽器管理界面,好多都提供phpMyAdmin(一個利用PHP 語言在瀏覽器上管理MySQL的程序)以及WebMin(通過瀏覽器來管理系統(tǒng))來讓您方便的管理系統(tǒng)。PHP現在的版本已經到了4.0.4pl1,是一門面向對象的交叉平臺的服務器端腳本語言。可以嵌入HTML語言中,可以作為Apache 的模塊來運行。下面我們以 tarball(.tar.gz)格式(和它相對的是RPM 格式)的版本為例子,來介紹安裝過程。?
安裝過程
1)安裝Mysql
因為RPM包安裝非常簡單而且成功率高所以我選擇這種安裝方式。
方法:
在Xwindows下雙擊此文件就可以了。在提示符下輸入:
rpm -i MySQL-3.23.38-1.i386.rpm?
2)安裝Apache和PHP
注:Apache和PHP是在一起安裝的,這一點一定要理解。
步驟如下:
a、先確定Apache安裝后的路徑
b、安裝并編譯PHP,把PHP作為Apache的模塊安裝到Apache的安裝路徑(即Apache的解壓縮的路徑)
c、安裝并編譯Apache 因為只有先把PHP作為Apache的模塊安裝到Apache的安裝路徑(即Apache的解壓縮的路徑),再安裝Apache才能使Apache執(zhí)行PHP文件。
開始安裝:
解壓縮文件:
tar zxvf Apache_1.3.9.tar.gz
tar zxvf PHP-4.0.2.tar.gz
配置Apache確定Apache安裝后的路徑:
cd Apache_1.3.9 ./configure --prefix=/usr/local/apache
進入PHP的解壓目錄,輸入:
./configure --with-apache=../Apache_1.3.9 --with-mysql --disable-debug --enable-track-vars?
注:"../Apache_1.3.9"表示Apache的解壓路徑,這個路徑一定要正確,我是把Apache和PHP放在同一路徑下解壓的。 這樣做就是讓PHP作為Apache的模塊和Apache一起安裝。
下一步:編譯、安裝PHP到Apache的原始目錄中
在提示符下輸入:make
完成之后再輸入:make install
再將php.ini.dist拷貝到這個目錄:/usr/local/lib,并重命名為php.ini
cp php.ini.dist /usr/local/lib
最后一步是安裝Apache
進入Apache的解壓目錄輸入:
./configure --prefix=/usr/local/apache --activate-module=src/modules/php4/libphp4.a
接下來:make
make install
至此安裝工作完成了。你還需要改動一些地方,才能讓Apache執(zhí)行PHP,如下:
編輯Apache配置文件:
/usr/local/apache/conf/httpd.conf
找到這一行:AddType application/x-httpd-php4 .php4
去掉前面的“#”號。再加上下面的幾行:
AddType application/x-httpd-php .php
AddType application/x-httpd-php .php4
重新啟動Apache: cd /usr/local/apache/bin ./apachectl restart
用下面這個文件在瀏覽器下測試Apache和PHP:
test.php
<?
phpinfo();
?>
如果出現了有關PHP的信息,說明你已經成功了!注意大小寫!
利用PhpMyAdmin來管理Mysql:將解壓后的PhpMyAdmin目錄放到你的Apache的htdocs目錄下,修改這個文件使之成為中文的界面:config.inc.php
找到有“english”單詞的一行,將“english”改成“chinese_gb”存盤,這樣就完成了。 這回再到瀏覽器下執(zhí)行一下這個目錄下的 index.php文件,這下應該出現Mysql的管理界面了而且還是中文,是不是很舒服!
第三章 開發(fā)過程
§3.1 設置服務器
這里主要是介紹Linux服務器中最重要的網絡服務:
Web服務器的配置:
安裝好Apache 服務器后,還需要根據實際情況完成各項參數的配置,其設置文件位于/www/httpd/conf/目錄下,通常使用3個配置文件httpd.conf, access.conf 和srm.conf來配置Apache.
httpd.conf提供了最基本的服務器配置,是對守護進程httpd如何運行的技術描速;srm.conf是服務器的資源映射文件,告訴服務器各種文件的MIME類型,以及如何支持這些文件;access.conf用于配置服務器的訪問權限,控制不同用戶和計算機的訪問權限。
用命令:#/www/bin/apachectl restart啟動來設置各項參數。
????????a. ServerType standalone ??????//可使httpd進行自我處 ???????理,占用較少CPU資源
????????b.?ServerRoot “/usr/local”???//指定守護進程的運行目錄
其他參數可根據實際需要設置。
§3.2?設置數據庫
???§3.2.1創(chuàng)建數據庫和數據表
???管理子系統(tǒng)所用的數據庫名為:gov_dbbase;
???管理子系統(tǒng)所用的數據表有5項,名分別為:users(用戶簡要信息表),aducat(學歷信息表),emergen(意外事故情況表),family(家屬信息表),resume(個人簡歷表)。
用命令:# cd /var/www/html 回車,進入mysql所在目錄;
????????# mysql –p 回車,根據提示鍵入密碼;
用命令:create database gov_dbbase;//完成創(chuàng)建數據庫。
用命令:show databases; ???????????//顯示數據庫。
用命令:use gov_dbbase; ???????????//指定使用的數據庫。??????
以下將完成各表項的創(chuàng)建:
創(chuàng)建users(用戶簡要信息)表:
?CREATE TABLE users( ????????????????????//建立公務員個人信息表
//字段名稱 字段類型(寬度) ???????空否 ?????????字段注釋
ID ??????int(5) ????????????????NOT NULL, ???//公務員號
NAME ????varchar(10) ???????????NOT NULL, ???//姓名
XB ??????varchar(6) ????????????NULL, ???????//性別
MZ ??????varchar(10) ???????????NULL, ???????//民族
BM ??????varchar(10) ???????????NULL, ???????//部門
ZC ??????varchar(10) ???????????NULL, ???????//職稱
ZW ??????varchar(10) ???????????NULL, ???????//職務
CSNY ????date ??????????????????NULL, ???????//出生年月
XZDZ ????varchar(40) ???????????NULL, ???????//現住地址
MM ??????int(10) ???????????????NOT NULL ????//密碼
BMBM ????int(5) ????????????????NOT NULL, ???//部門編碼
ZWBM ????int(5) ????????????????NOT NULL, ???//職務編碼
MJ ??????int(5) ????????????????NOT NULL ????//秘級
?);
創(chuàng)建resume(個人簡歷)表:?
CREATE TABLE resume( ????????????????????????//個人簡歷
//字段名稱 字段類型(寬度) ???????空否 ?????????字段注釋
JG ??????varchar(20) ???????????NULL, ???????//籍貫
SG ??????int(3) ????????????????NULL, ???????//身高
TZ ??????int(3) ????????????????NULL, ???????//體重
XUX ?????varchar(2) ????????????NULL, ???????//血型
STZK ????varchar(4) ????????????NULL, ???????//身體狀況
HJ ??????varchar(20) ???????????NULL, ???????//戶籍
SFZH ????int(19) ???????????????NULL, ???????//身份證號
HOBBY ???varchar(50) ???????????NULL, ???????//個人愛好
YB ??????int(10) ???????????????NULL, ???????//郵編
EML ?????varchar(20) ???????????NULL, ???????//郵件地址
HYZK ????varchar(4) ????????????NULL, ???????//婚姻狀況
ZZMM ????varchar(10) ???????????NULL, ???????//政治面貌
XZ ??????varchar(8) ????????????NULL ????????//星座
);
創(chuàng)建family(家屬信息)表:
CREATE TABLE family( ????????????????????????//家屬情況
//字段名稱 字段類型(寬度) ???????空否 ?????????字段注釋
JSCH1 ???varchar(10) ???????????NULL, ???????//家屬稱呼1
JSCH2 ???varchar(10) ???????????NULL, ???????//家屬稱呼2
JSCH3 ???varchar(10) ???????????NULL, ???????//家屬稱呼3
JSXM1 ???varchar(10) ???????????NULL, ???????//家屬姓名1
JSXM2 ???varchar(10) ???????????NULL, ???????//家屬姓名2
JSXM3 ???varchar(10) ???????????NULL, ???????//家屬姓名3
JSXB1 ???varchar(10) ???????????NULL, ???????//家屬性別1
JSXB2 ???varchar(10) ???????????NULL, ???????//家屬性別2
JSXB3 ???varchar(10) ???????????NULL, ???????//家屬性別3
JSCSRQ1 ?varchar(10) ???????????NULL, ???????//家屬出生日期1
JSCSRQ2 ?varchar(10) ???????????NULL, ???????//家屬出生日期2
JSCSRQ3 ?varchar(10) ???????????NULL, ???????//家屬出生日期3 JSZY1 ???varchar(10) ???????????NULL, ???????//家屬職業(yè)1
JSZY2 ???varchar(10) ???????????NULL, ???????//家屬職業(yè)2
JSZY3 ???varchar(10) ???????????NULL, ???????//家屬職業(yè)3
JSGZDW1 ?varchar(40) ???????????NULL, ???????//家屬工作單位1
JSGZDW2 ?varchar(40) ???????????NULL, ???????//家屬工作單位2
JSGZDW3 ?varchar(40) ???????????NULL, ???????//家屬工作單位3
JSZZ1 ???varchar(40) ???????????NULL, ???????//家屬住址1
JSZZ2 ???varchar(40) ???????????NULL, ???????//家屬住址2
JSZZ3 ???varchar(40) ???????????NULL ????????//家屬住址3
);
創(chuàng)建emergen(意外事故情況)表:
CREATE TABLE emergen( ???????????????????????//意外情況
//字段名稱 字段類型(寬度) ???????空否 ?????????字段注釋
YWLLR ???varchar(10) ??????NULL, ???????//發(fā)生意外聯絡人
YWGX ????varchar(10) ??????NULL, ???????//發(fā)生意外聯絡人關系
YWTX ????varchar(40) ??????NULL, ???????//發(fā)生意外聯絡人通訊
YWDH ????varchar(20) ??????NULL, ???????//發(fā)生意外聯絡人電話YWSYR ???varchar(10) ??????NULL, ???????//發(fā)生意外受益人YWSYGX ??varchar(10) ??????NULL, ???????//發(fā)生意外受益人關系YWSYTX ??varchar(40) ??????NULL, ???????//發(fā)生意外受益人通訊YWSYDH ??varchar(20) ??????NULL ????????//發(fā)生意外受益人電話
);
創(chuàng)建aducat(學歷信息)表:
CREATE TABLE aducat( ????????????????????????//教育情況
//字段名稱 字段類型(寬度) ?????空否 ?????????字段注釋
XL ??????varchar(10) ???????????NULL, ???????//最高學歷
SCHOOL ??varchar(30) ???????????NULL, ???????//畢業(yè)學校
GRADATE ?date ??????????????????NULL, ???????//畢業(yè)時間
MAJOR ???varchar(20) ???????????NULL, ???????//專業(yè)
SPECI ???varchar(40) ???????????NULL, ???????//特長
LANGU ???varchar(20) ???????????NULL ????????//外語能力
);
用命令:show tables; ???????????????//顯示所有已建表項。
用命令:describe users; ????????????//顯示users表各個字段。
其他表項類似操作。
§3.2.2 ?數據庫連接
???為了保證程序的安全,編寫獨立的數據庫連接功能程序:
<?php
do{include("../config.php");} while($sql=="");
//數據庫所在的主機地址,localhost是本機地址
??$MYSQL_HOSTNAME = "localhost";
//數據庫登錄的用戶名稱
??$MYSQL_USERNAME = "root";
//數據庫登錄的密碼
?// $MYSQL_PASSWORD = "";
//要登錄的數據庫的名稱
?// $DATABASE = "gov_dbbase";
//數據庫的連接操作
?$link_id=$sql;
?>
§3.2.3 創(chuàng)建數據源 ??????????????????????????????????????????????用命令:# insert into users
??????????values(1003,’張三’,’男’,’漢’,’部’,’部長’,’工程師’,’1978-03-24’,’成都市人民南路3段3號’,
12345,6,4,3);其他表數據源類似插入。
用命令:# select * from users order by ID;可以查看所錄入的數據源。
注:考勤管理和職員工資信息管理兩部分的功能實現,由薪資管理模塊和公共信息管理模塊提供。
§3.3 系統(tǒng)功能實現
管理子系統(tǒng)作為課程的一個模塊,將完成對政府系統(tǒng)中公務員的管理,目前包括規(guī)章制度、重要通知、最新信息、信息查詢、管理員登錄以及相關功能鏈接。其中以信息查詢和管理員登錄為主,將實現個人信息的簡要和詳細查詢,部門中人員信息的簡要和詳細查詢;人員信息的錄入、修改、刪除、工資管理以及考勤管理。采用頁面交互式操作,用網頁制作工具dreamwaver或其它工具實現,功能程序用php實現,將所有的程序放置在服務器上,通過apache提供;達到網上辦公和無紙辦公。可以參考以下功能模塊圖。
??系統(tǒng)功能模塊圖
????該功能模塊圖提供管理子系統(tǒng)中各模塊之間的關系說明。功能模塊圖如下:
?
§3.3.1 ?系統(tǒng)登錄
用戶登錄課程后,點擊“管理”鏈接進入本子系統(tǒng)。
如下圖示,進入管理子系統(tǒng)主頁面:
§3.3.2 ?規(guī)章制度
管理規(guī)章制度欄,將向所有公務員提供各種咨詢信息,為初到機關的員工講解具體要求。通過點擊即可鏈接到所要查看項目,可以進入該項的詳細內容頁面。其具體內容由用戶方提供,粘貼到頁面即可。如上圖左示。
§3.3.3 ?重要通知
???重要通知欄,將由部或科發(fā)布其最近最新的通知,由管理員在新聞發(fā)布管理項,可以添加,修改,刪除新聞。如上圖中上示。
§3.3.4 ?最新信息
???最新信息欄,將由部或科發(fā)布其最近最新的信息,包括與本單位一切相關信息,仍由管理員在新聞發(fā)布管理項,可以添加,修改,刪除新聞;通過點擊相關項,可瀏覽其詳細信息。如上圖中下示。
?
§3.3.5 ?信息查詢?
?
程序實現://選擇進入模塊login1.php
??????<? php ?????????????
?switch($choose):
??case "c1":
????require("infomation1.php"); ??break;
??case "c2":
????require("infomation2.php"); ??break;
??case "c3":
????require("depart1.php"); ??break; ?
??case "c4":
????require("depart2.php"); ??break;
??default:
????require("m6_index.php");
endswitch;
?>
?
(a)、職員信息查詢:將向員工用戶提供公務員信息查詢,即:員工簡要信息查詢和其詳細信息查詢。簡要信息查詢時,當輸入員工的帳號和姓名,點擊“確定”后,由程序search1.php提交到數據庫中,根據ID和NAME從表users中提取數據返回infomation1.php顯示;詳細信息查詢時,輸入員工的帳號、姓名和密碼,點擊“確定”后由程序modify11.php提交到數據庫中,根據ID、NAME和PASSW從表users以及aducat、emergen、family、resume中提取數據返回infomation2.php顯示。
?
????????????????????上圖提供個人信息簡要查詢
程序實現: //個人簡要信息search1.php
<?
?if($ID AND $NAME){ //判斷輸入信息,若正確則連接數據庫
?????????????do{ require("../config.php"); }while($sql==" "); ?????????????$str="SELECT NAME,XB,MZ,BM,ZC,ZW,ID,CSNY,XZDZ ????????????????????????FROM users WHERE ID='$ID';";
$result=mysql_query($str,$sql);
mysql_close();//關閉數據庫
$record=mysql_fetch_row($result);}?>//送出查詢結果??
?
????????????????????????上圖提供個人信息詳細查詢?
程序實現://個人信息詳細查詢mofify11.php
?<?php ???????
?if($ID AND $NAME){ //判斷輸入信息,若正確則連接數據庫
??do{require("../config.php");}while($sql=="");
???????$str="SELECT * FROM ?users WHERE ID='$ID';"; ???????????????????$result=mysql_query($str,$sql); ???????????$record1=mysql_fetch_array($result);
???????$str2="SELECT * FROM ?aducat WHERE ID='$ID';"; ???????????$result2=mysql_query($str2,$sql); ???????????$record2=mysql_fetch_array($result2);
???????$str3="SELECT * FROM ?resume WHERE ID='$ID';"; ???????????$result3=mysql_query($str3,$sql); ???????????$record3=mysql_fetch_array($result3);
???????$str4="SELECT * FROM ?family WHERE ID='$ID';"; ???????????$result4=mysql_query($str4,$sql); ???????????$record4=mysql_fetch_array($result4);
???????$str5="SELECT * FROM ?emergen WHERE ID='$ID';"; ???????????$result5=mysql_query($str5,$sql); ???????????$record5=mysql_fetch_array($result5);
???????mysql_close(); ?}
???>
(b)、部門信息查詢:部門簡要信息查詢和其詳細信息查詢。即:查詢該部門員工的信息。部門簡要信息查詢時,只需輸入部門名稱,點擊“確定”后,程序search2.php根據BM(部門名)提交到數據庫中從表users,中查詢到該部門所有員工的簡要信息返回depart1.php顯示。詳細信息查詢時,需輸入你的姓名,帳號,密碼,且必須是領導,職務編碼為4。然后輸入被查詢者的姓名和帳號,點擊“確定”,由程序depart12.php提交數據庫從表users,aducat,emergen,resume,family中查詢,返回到depart2.php顯示。 ??????????????????????????????????上圖提供部門信息簡要查詢
程序實現://部門信息簡要查詢search2.php
<?//判斷輸入信息,若正確則連接數據庫
?do{require("../config.php");}while($sql==" ");
?if($BM){
$select="select * from users where BM='$BM';"; $result=mysql_query($select,$sql);
//$record=mysql_fetch_row($result);
$sn_index=mysql_num_rows($result); for($index=0;$index<$sn_index;$index++){
????$arr[$index]=mysql_fetch_array($result); };
mysql_close();}
?>
用list_display.php程序來實現逐條顯示
<?//逐條顯示
<TR align=center><TD ALIGN=CENTER><?echo $arr[$index][ID]?></TD>
<TD ALIGN=CENTER><?echo $arr[$index][NAME]?></TD>
<TD ALIGN=CENTER><?echo $arr[$index][XB]?></TD>
<TD ALIGN=CENTER><?echo $arr[$index][MZ]?></TD>
<TD ALIGN=CENTER><?echo $arr[$index][BM]?></TD>
<TD ALIGN=CENTER><?echo $arr[$index][ZC]?></TD>
<TD ALIGN=CENTER><?echo $arr[$index][ZW]?></TD>
<TD ALIGN=CENTER><?echo $arr[$index][CSNY]?></TD>
<TD ALIGN=CENTER><?echo $arr[$index][XZDZ]?></TD>
</TR>?>????
?
???????????????????????上圖提供部門信息詳細查詢
程序實現://部門詳細信息查詢depart12.php
<?//判斷輸入信息,若正確則連接數據庫
if($ID AND $NAME AND $PASSW AND $OBJECTN AND $OBJECTID){
?????do{ require("../config.php");}while($sql=="");
?????$str=" SELECT ZWBM FROM users WHERE ID='$ID';"; ????$result=mysql_query($str,$sql); ????$record=mysql_fetch_array($result);
?if($record[0]==4){ ?
???if($OBJECTID AND $OBJECTN){ //判斷輸入信息,若正確則連接數據庫
????????????????????do{require("../config.php");}while($sql==""); ??????$str="SELECT * FROM ?users WHERE ID='$OBJECTID';"; ???????????$result=mysql_query($str,$sql); ???????????$record1=mysql_fetch_array($result);
$str2="SELECT * FROM ?aducat WHERE ID='$OBJECTID';"; ???????????$result2=mysql_query($str2,$sql); ???????????$record2=mysql_fetch_array($result2);
$str3="SELECT * FROM ?resume WHERE ID='$OBJECTID';"; ???????????$result3=mysql_query($str3,$sql); ???????????$record3=mysql_fetch_array($result3);
$str4="SELECT * FROM ?family WHERE ID='$OBJECTID';"; ???????????$result4=mysql_query($str4,$sql); ???????????$record4=mysql_fetch_array($result4);
$str5="SELECT * FROM ?emergen WHERE ID='$OBJECTID';"; ???????????$result5=mysql_query($str5,$sql); ???????????$record5=mysql_fetch_array($result5);
mysql_close(); } ??} ?}
???????>
§3.3.6 ??管理員模塊
????登錄時要求輸入管理員的姓名、密碼、帳號,此處設定為:姓名(SSSS)、密碼(12345)、帳號(6666),點擊“確定”后,由程序login2.php提交到數據庫,根據輸入的信息判斷其是否為管理員,若是可進入。進入后,點擊左邊的各項即可鏈接到相應的功能項,繼續(xù)操作。 ???????????????
?
程序實現:login2.php
//管理員登錄功能程序
<?php//判斷輸入信息,若正確則連接數據庫
do{ require("../config.php");}while($sql==" ");
?if($ID=="6666" and $NAME=="ssss" and $PASSW==12345){
?$select="select ID from users where ID='$ID' AND NAME='$NAME'
?
AND PASSW='$PASSW';";
?$result=mysql_query($select,$sql); ?if($result){require("manager.php"); }
????????else {
echo"您填入的信息有誤,<a href=m6_index.php>請回上一頁重新登錄!</a>";}
mysql_close(); }
?>
登錄成功后,進入管理員頁面(manager.php),如下:
在頁面的左側選擇操作項,右側綠色區(qū)域為工作區(qū)。
?
(a)、職員信息錄入:公務員號(ID)項必須錄入數據,直接在文本框中錄入數據,要求日期類的格式必須為“1990-09-09”,身高“170cm”,體重“65kg”,在錄入界面中輸入數據后,按“提交”后,由程序insert.php提交數據庫,對users,aducat,emergen,resume,family五表插入數據;當提示數據錄入成功后,點擊返回,可繼續(xù)錄入。???
程序實現://職員信息錄入insert.php
<?php
?????if($ID){ //判斷輸入信息,若正確則連接數據庫
?do{require("../config.php");}while($sql=="");
?//向users表插入數據
$str="INSERT INTO users VALUES('$ID','$NAME','$XB','$MZ','$CSNY','$XZDZ','$ZC','$ZW','$BM','$BMBM','$ZWBM','$MJ','$PASSW','$HYZK','$ZZMM');";
//插入新數據
?????if(!$str){ echo "can not insert data";
?????????exit;}
$result=mysql_query($str,$sql); //送出查詢字符串 ???????if($result==0){echo "can not query ";
?????????exit;}//向aducat表中插入數據
$str="INSERT INTO aducat VALUES ('$XL','$SCHOOL','$GRADATE','$MAJOR','$SPECI','$LANGU','$ID');"; ????????//插入新數據
????????if(!$str){echo "can not insert data";
?????????exit;}
???$result=mysql_query($str,$sql); //送出查詢字符串 ???????if($result==0){echo "can not query ";
?????????exit;}//向emergen表中插入數據
$str="INSERT INTO emergen VALUES ( '$YWLLR','$YWGX','$YWTX','$YWDH','$YWSYR','$YWSYGX','$YWSYTX','$YWSYDH','$ID');";//插入新數據
????????if(!$str){echo "can not insert data";
?????????exit;}
$result=mysql_query($str,$sql); //送出查詢字符串 ???????if($result==0){echo "can not query ";
?????????exit;}
//向family表中插入數據
$str="INSERT INTO family VALUES ('$JSCH1','$JSXM1','$JSXB1','$JSCSRQ1','$JSZY1','$JSGZDW1','$JSZZ1', ???????????????????????'$JSCH2','$JSXM2','$JSXB2','$JSCSRQ2','$JSZY2','$JSGZDW2','$JSZZ2', ???????????????????????'$JSCH3','$JSXM3','$JSXB3','$JSCSRQ3','$JSZY3','$JSGZDW3','$JSZZ3', ???????????????????????'$ID');";//插入新數據
????????if(!$str){echo "can not insert data";
?????????exit;}
$result=mysql_query($str,$sql); //送出查詢字符串 ???????if($result==0){echo "can not query ";
?????????exit;}//向resume表中插入數據
$str="INSERT INTO resume VALUES ('$JG','$SG','$TZ','$XUX','$STZK','$HJ','$SFZH','$HOBBY','$YB','$EML','$HYZK','$ZZMM','$XZ','$ID');";//插入新數據
?????????if(!$str){echo "can not insert data";
????????exit;}
$result=mysql_query($str,$sql); //送出查詢字符串 ???????if($result==0){echo "can not query ";
?????????exit;}//向base表中插入數據
$str="INSERT INTO base(id,name,password,bmbm,zwbm) ???????????????VALUES('$ID','$NAME','$PASSW','$BMBM','$ZWBM');";//插入新數據 ????????if(!$str){echo "can not insert data";
?????????exit;}
$result=mysql_query($str,$sql); //送出查詢字符串 ???????if($result==0){echo "can not query ";
??????exit;}
???mysql_close();//關閉數據庫
??echo "添加數據成功!<a href=insert.php>返回</a>";}
?else
????{echo "添加數據不成功!<a href=insert.php>返回,請檢查數據類型的正確性!</a>";}
?>
(b)、職員信息修改:在修改界面中,首先輸入被修改者的帳號(ID)和姓名(NAME),點擊“確定”后由程序modify11.php提交到數據庫,首先將其原始數據搜索出返回到modify.php中顯示,在此基礎上對數據進行修改,修改完畢再由程序modify12.php提交到數據庫對數據進行更新users,aducat,emergen,resume,family五表操作,提示修改成功后,可返回,繼續(xù)下一次修改。????????????????
程序實現:
//職員信息修改
<?
if($ID){ ??????????????????????//判斷公務員號是否存在
??????do{require("../config.php");}while($sql=="");
//update users table
$str="UPDATE users SET NAME='$NAME',XB='$XB',MZ='$MZ',CSNY='$CSNY',XZDZ='$XZDZ', ?????????ZC='$ZC',ZW='$ZW',BM='$BM',BMBM='$BMBM',ZWBM='$ZWBM',MJ='$MJ',PASSW='$PASSW',HYZK='$HYZK',ZZMM='$ZZMM' WHERE ID='$ID';"; ??//更改數據if(!$str){
echo "can not update data";
?exit;}
$result=mysql_query($str,$sql); //送出查詢字符串
if($result==0){echo "can not query ";
???????exit;}
//update aducat table
$str="UPDATE aducat SET XL='$XL',SCHOOL='$SCHOOL',GRADATE='$GRADATE',MAJOR='$MAJOR',SPECI='$SPECI',LANGU='$LANGU' WHERE ID='$ID';"; ??//更改數據 ?if(!$str){
echo "can not update data";
?exit;}
$result=mysql_query($str,$sql); //送出查詢字符串
if($result==0){
echo "can not query ";
?????????exit;}
//update emergen table
$str="UPDATE emergen SET //更改數據YWLLR='$YWLLR',YWGX='$YWGX',YWTX='$YWTX',YWDH='$YWDH',YWSYR='$YWSYR',YWSYGX='$YWSYGX',YWSYTX='$YWSYTX',YWSYDH='$YWSYDH' WHERE ID='$ID';";
if(!$str){
echo "can not update data";
?exit;}
$result=mysql_query($str,$sql); //送出查詢字符串
if($result==0){
echo "can not query ";
?????????exit;}
//update family table
$str="UPDATE family SET SCH1='$JSCH1',JSXM1='$JSXM1',JSXB1='$JSXB1',JSCSRQ1='$JSCSRQ1',JSGZDW1='$JSGZDW1',JSZZ1='$JSZZ1',JSCH2='$JSCH2',JSXM2='$JSXM2',JSXB2='$JSXB2',JSCSRQ2='$JSCSRQ2',JSGZDW2='$JSGZDW2',JSZZ2='$JSZZ2',JSCH3='$JSCH3',JSXM3='$JSXM3',JSXB3='$JSXB3',JSCSRQ3='$JSCSRQ3',JSGZDW3='$JSGZDW3',JSZZ3='$JSZZ3' WHERE ID='$ID';"; ??//更改數據
if(!$str){
echo "can not update data";
?exit;}
$result=mysql_query($str,$sql); //送出查詢字符串
if($result==0){
echo "can not query ";
?????????exit;}
//update resume table
$str="UPDATE resume SET ??????????JG='$JG',SG='$SG',TZ='$TZ',XUX='$XUX',STZK='$STZK',HJ='$HJ',SFZH='$SFZH',HOBBY='$HOBBY',YB='$YB',EML='$EML',HYZK='$HYZK',ZZMM='$ZZMM',XZ='$XZ' WHERE ID='$ID';"; ??//更改數據
if(!$str){
echo "can not update data";
?exit;}
$result=mysql_query($str,$sql); //送出查詢字符串
if($result==0){
echo "can not query ";
?????????exit;}
//update base table
$str="UPDATE base SET name='$XM',bmbm='$BMBM',zwbm='$ZWBM',password='$MM' WHERE id='$GWYH';"; ?????????//更改數據
if(!$str){
echo "can not update data";
?????????exit;}
$result=mysql_query($str,$sql); //送出查詢字符串 ???????if($result==0){
echo "can not query ";
?????????exit;}
mysql_close(); //關閉數據庫
echo "數據修改成功!<a href=modify2.php>返回</a>"; ?}
?>?
(c)、職員信息刪除:在刪除界面中,首先輸入被刪除者的帳號(ID)和姓名(NAME),點擊“確定”后;程序delete.php根據ID提交到數據庫查詢是否有此人,然后將其刪除,根據提示信息繼續(xù)操作。
? ? ??
?
程序實現:delete.php
//職員信息刪除
<!---Deleteuser php script begins here--->
<?php
if($ID and $NAME){ //判斷輸入信息,若正確則連接數據庫
do{require("../config.php");}while($sql==" ");
//刪除users表中某一信息
$deleteresult="DELETE FROM users where NAME='$NAME' AND ID='$ID'"; ?$result=mysql_query($deleteresult, $sql);
if(!result){
echo "can not query";
exit;}
$affected_rows=mysql_affected_rows( $sql);
//刪除aducat表中某一信息
$deleteresult ="DELETE FROM aducat WHERE ?ID='$ID'"; ?$result=mysql_query($deleteresult, $sql);
if(!result){
echo "can not query";
exit;}
$affected_rows=mysql_affected_rows( $sql);
//刪除family表中某一信息
$deleteresult ="DELETE FROM family WHERE ?ID='$ID'"; ?$result=mysql_query($deleteresult, $sql);
if(!result){
echo "can not query";
exit;}
$affected_rows=mysql_affected_rows( $sql);
//刪除resume表中某一信息
$deleteresult ="DELETE FROM resume WHERE ?ID='$ID'"; ?$result=mysql_query($deleteresult, $sql);
if(!result){
echo "can not query";
exit;}
$affected_rows=mysql_affected_rows( $sql);
//刪除emergen表中某一信息
$deleteresult ="DELETE FROM emergen WHERE ?ID='$ID'"; ?$result=mysql_query($deleteresult, $sql);
if(!result){
echo "can not query";
exit;}
$affected_rows=mysql_affected_rows( $sql);
//刪除base表中某一信息
$deleteresult ="DELETE FROM base WHERE id = '$ID'"; ?$result=mysql_query($deleteresult, $sql);
if(!result){
echo "can not query";
????????exit;}
$affected_rows=mysql_affected_rows( $sql);
mysql_close();
echo "<b>$NAME</b> 已經被成功的刪除了.";}
?>
?
(d)、工資信息管理:具備錄入,修改,刪除;同上點擊鏈接后,根據提示信息繼續(xù)操作。該塊由工資管理欄完成。
?
(e)、考勤管理:同上點擊鏈接后,根據提示信息繼續(xù)操作。該塊由考勤管理完成。
?????
?
?
(f)、新聞發(fā)布管理:目前由于時間原因暫未實現,若要實現可與系統(tǒng)主頁中的新聞管理相似處理。
(g)、職員相片管理:目前由于時間原因暫未實現,具備相片上傳、相片修改、相片刪除功能。暫時實現相片上傳功能,后繼實現。
§3.3.7 ?相關功能鏈接
???該部分用于提供客戶的功能擴展,暫未連接功能項,留待客戶具體需求提出后實現。
第四章 ?結束語
基本滿足用戶要求,能夠通過網絡實現網上課程辦公,進行管理。本管理子系統(tǒng)具有界面美觀(大力推薦環(huán)保理念),操作方便,系統(tǒng)性能良好,具有較強的可移植性和安全性。??
由于時間匆忙,本次設計有待幾處改進:
(1)、對于龐大的管理系統(tǒng),本子系統(tǒng)沒能提供完整的功能,如考核考績評定,請假休假管理,社會福利管理等,筆者無充足時間加以完善。
(2)、本子系統(tǒng)所涉及到的數據庫庫表較大,字段較多,有待優(yōu)化。
(3)、對系統(tǒng)的使用說明文檔不是很完整。
3、體會
???通過本次畢業(yè)設計,我充分體會到理論與實踐之間的聯系的重要性,怎樣在實踐中學習新的知識。與此同時,我對商務網站建設、Linux操作系統(tǒng)、PHP4.0、Apache、MySQL等相關知識都有較深了解和掌握。由于時間倉促,本次設計和運用只是其中的一部分,有待在將來的工作中進一步學習、掌握和運用。
在本次畢業(yè)設計過程中,我得到了很多老師和同學的指導和支持。在此特向張鐘澍、徐虹、何嘉、李飛、徐振明五位老師表示真誠的感謝!同時也向管理層的阮曉東老師表示敬意,她把整個開發(fā)過程組織得有條不紊。感謝開發(fā)組的同學們給予積極的配合和支持!
第五章 ?參考文獻
??????????????????????????????????????中科多媒體電子出辦社?????????????????????????????????
??????????????????????????????位元文化 編著 中國青年出版社??
PHP4.0與MySQL動態(tài)網站編程 ??馮燕奎 ?編著 ?清華大學出版社
點贊關注收藏,一鍵三連,私信拿源碼
點贊關注收藏,一鍵三連,私信拿源碼
點贊關注收藏,一鍵三連,私信拿源碼
總結
以上是生活随笔為你收集整理的【毕业设计之PHP系列】PHP课程网站络管理系统的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 纸飞机 --2013-08-08博客搬家
- 下一篇: php socket 模拟post,用P