999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

用開源軟件構建牽引電氣安全檢查信息交互系統(tǒng)

2014-12-23 07:14:50陳道琳
科技視界 2014年14期
關鍵詞:數(shù)據(jù)庫用戶信息

陳道琳

(武漢鐵路局 襄陽供電段,湖北 襄陽441001)

0 引言

當前電子辦公在企業(yè)的應用熱浪滔天, 在基層站段的管理體制中,引入一種利用信息平臺來提升各級部門間信息交互的效率、節(jié)省辦公成本、加速標準化管理進程的電子辦公機制是一種促進管理的有效嘗試。

本文對用PHP 和MySQL 兩種開源軟件來實現(xiàn)B/S 結構的信息交互系統(tǒng)展開論述。

1 需求分析

1.1 項目概述

本系統(tǒng)以Web 為載體, 允許單位內的各個部門 (通常是管理部門)發(fā)布信息,該信息可公開,也可只由指定的部門查看,還可以由相關部門對信息作出反饋,實現(xiàn)辦公中的信息交互,便于各種信息的備案。

1.2 基本功能

(1)信息錄入。 滿足發(fā)布信息的部門和反饋信息的部門錄入自己的信息。

(2)存取控制。對訪問者的身份進行識別,為用戶提供與他們的身份相符的存取權限。

(3)用戶管理。 對系統(tǒng)中的用戶信息和相關的權限進行管理。

(4)信息管理。 對已錄入的信息(包括反饋信息)進行管理。

1.3 高級功能

(1)查找。 允許用戶按標題或信息內容查找他們想查看的歷史信息。

(2)指定反饋對象。 允許信息發(fā)布者對他們發(fā)布的信息專門指定應該作出反饋的部門。

(3)郵件通知。當指定反饋對象后,可以向指定應作出反饋的部門發(fā)出相關的提示郵件,通知用戶應該對某個特定的信息作出反饋了。

(4)列表滾動顯示尚未反饋完全的信息和尚未反饋信息的部門。

1.4 工具的選擇

本系統(tǒng)基于B/S 結構,主要的事務邏輯放在服務器上實現(xiàn)。 采用PHP 作為開發(fā)語言,用MySQL 作為后臺數(shù)據(jù)庫。

PHP 是一種服務器端的HTML 嵌入式腳本語言, 它類似于ASP,然而它的不同之處在于PHP 的開放源碼和跨平臺特性。 PHP 語言類似于C 和Perl,具有強大的數(shù)據(jù)庫操作功能,它還提供了面向對象特性,為快速開發(fā)和軟件復用提供了很好的支持。

MySQL 是一個多用戶、多線程、跨平臺、開源的SQL 數(shù)據(jù)庫服務器。與其它大型的數(shù)據(jù)庫如Oracle、DB2、SQL Server 相比,MySQL 自有它的不足之處,如規(guī)模小,功能有限,但這絲毫也沒有減少它受歡迎的程度,因為MySQL 的主要目標是快速、健壯和易用。

1.5 運行環(huán)境

本系統(tǒng)使用PHP 4.4.0 和MySQL 4.0.28 作為開發(fā)工具,理論上可以在任何支持PHP 和MySQL 的平臺上運行, 這里我們在Windows 2000 Server 和Linux 上都做過測試,運行狀態(tài)良好。

2 系統(tǒng)設計

2.1 系統(tǒng)結構設計

本系統(tǒng)分為前臺用戶端和后臺管理端。 系統(tǒng)結構圖如圖1 所示。

圖1

前臺用戶端主要顯示已發(fā)布的信息列表,能為用戶提供按類型顯示已公布的信息的選擇操作,對尚未反饋完的信息和尚未反饋的部門滾動顯示。 后臺管理端由管理員和信息的發(fā)布者使用,管理員和信息發(fā)布者擁有不同的權限, 信息發(fā)布者可以發(fā)布并修改自己發(fā)布的信息,還可以指定應作出反饋的部門;管理員還另外擁有用戶及部門管理的權限。

2.2 數(shù)據(jù)庫設計

根據(jù)2.1 中對系統(tǒng)結構的分析可知,整個系統(tǒng)需要存儲的數(shù)據(jù)分為信息(包括反饋信息)數(shù)據(jù)、部門數(shù)據(jù)和用戶數(shù)據(jù)三類。 其ER 圖如圖2。

圖2

圖2 中的ER 圖并不是整個系統(tǒng)的完整的實體聯(lián)系模型描述,因為關于用戶信息的存儲我們會用到php_lib_login (一個PHP 庫) 庫提供的關于用戶信息,其中部門實體的登錄名會和php_lib_login 庫中的用戶名關聯(lián),形成外部鍵。

3 系統(tǒng)實現(xiàn)

3.1 MySQL 數(shù)據(jù)庫的結構

根據(jù)2.2 中對數(shù)據(jù)庫邏輯結構的分析,可知在MySQL 數(shù)據(jù)庫中我們需要建立能存儲信息及其反饋信息、指定反饋記錄、部門信息相關的表項,幾個主要表的結構如下:

(1)maintext /* 信息記錄*/

{

id varbinary, type tinyint, allow tinyint, time varbinary, ipaddr varbinary, plant tinyint, content blob

}

(2)slavetext /* 反饋信息記錄*/

{

slaveid varbinary, id varbinary, plant tinyint, time varbinary,ipaddr varbinary, content blob

}

(3)plants /* 部門信息記錄*/

{

sid tinyint, sname varbinary, pid tinyint, pname varbinary,loginuser varbinay, inuse tinyint default 1, priviledge tinyint

}

(4)feedback /* 指定反饋的記錄*/

{

id varbinary, dept tinyint, plant tinyint, send tinyint default 0,back tinyint default 0

}

3.2 編程實現(xiàn)

本系統(tǒng)程序的幾個主要代碼片斷如下:

(1)全局變量

需要被多個PHP 腳本共同使用的變量和常會被修改的變量放在config.php 文件中,幾個主要的變量如下:

$database /* 數(shù)據(jù)庫名*/

$title_page /* 每頁顯示的信息標題數(shù)*/

$login_space /* 用戶登錄后的最大的睡眠時間*/

$lenmax /* 信息內容的最大長度*/

$echomax /* 反饋信息內容的最大長度*/

$mailhost /* 郵件服務器地址*/

(2)身份識別

通過獲取遠程訪問者的IP 地址,將這個IP 地址與系統(tǒng)中允許訪問的IP 地址作比較,便能得知遠程訪問者是否在許可的范圍以內。 代碼片斷如下:

$ips = get_allow_ip( ); //返回允許訪問的IP 地址列表

$allow = check_ip($_SERVER[‘REMOTE_ADDR’], $ips);

(3)用戶登錄及部門權限

用戶登錄不只是驗證用戶名和口令,還包括對已登錄用戶進行記帳、對用戶登錄失敗的次數(shù)的統(tǒng)計、對特定地址上的用戶的禁止等操作。 PHP 另一個流行的原因是有很多高質量的免費的開源的PHP 庫供我們使用,php_lib_login 就是這樣一個包含了登錄用戶的許多特性的PHP 庫。 使用php_lib_login 來實現(xiàn)用戶登錄的驗證非常簡單,只需調用一個php_lib_login 庫函數(shù)即可:

lib_login_show_login_form($error);

當用戶登錄后,繼續(xù)調用php_lib_login 的一個庫函數(shù):

$user = lib_login_protect_page( );

即可獲取當前已登錄用戶的用戶名并賦值給變量$user, 然后將$user 與plants 表中的loginuser 字段相關聯(lián)即可獲取當前登錄用戶所屬部門的權限。

(4)發(fā)布信息與反饋

實現(xiàn)發(fā)布信息與反饋時要注意兩點:

①當用戶提交時要對