基于php的学生信息管理系统毕业设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1 绪论
随着中国IT市场化世界化的加速,中国的软件行业正逐步向规范化、市场化、版权化发展。

从前段时间中国盗版Windows系统番茄花园论坛被停掉就可以看出国家对软件版权问题的重视。

目前高校所使用的办公系统、科研教学系统、学生管理系统基本还是用ASP、.NET开发的较多。

这就需要考虑到成本问题,因为这些语言开发对操作系统有较大限制,而选择Windows NT作为服务器,这将高校的成本投入。

目前很多企业、高校更倾向于选择开源免费的LINUX、PHP,所以PHP的市场前景将非常好。

PERL编写CGI是使用最多的方法,在网络上也有很多现成的脚本可以拿来修改使用,但它却存在公认的性能问题:由于WEB服务器运行时需调用解释程序解析代码,当站点的访问人数激增时,WEB服务器的性能也必将直线下降,另外则是它的数据库连接功能非常弱,某些情况下甚至还会降低数据库的存取速度。

在此两者的基础上,第三方厂商提出了较好的解决方案:如Microsoft的Active Server Pages、ALLAIRE的ColdFusion,它们都具有运行速度快,数据库操作功能强大等特性,受到了许多开发者的欢迎,但它们只能单纯的运行于个别平台(NT),对要求更高回应率的网站来说(大多数大中型网站均建于UNIX或LINUX平台,APACHE系列WEB服务器)还是不能顺利采用(注:目前已有人提出这两种技术在UNIX系列平台上应用的方案,但要么是不具备源技术的全部优秀功能,要么就是只能应用于个别UNIX平台)。

PHP则是一种用于创建动态WEB页面的服务端脚本语言。

PHP脚本语言的语法结构与C 语言和Perl语言的语法风格非常相似,用户在使用变量前不需要对变量进行声明。

使用PHP创建数组的过程也非常简单。

PHP还具有基本的面向对象组件功能,可以极大的方便用户有效组织和封装自己编写的代码。

如同ASP和ColdFusion,用户可以混合使用PHP和HTML编写WEB页面,当访问者浏览到该页面时,服务端会首先对页面中的PHP命令进行处理,然后把处理后的结果连同HTML内容一起传送到客户端的浏览器。

但是与ASP或ColdFusion不同,PHP是一种源代码开放程序,拥有很好的跨平台兼容性。

用户可以在Windows NT系统以及许多版本的Unix系统上运行PHP,而且可以将PHP作为Apache服务器的内置模块或CGI程序运行。

PHP 是秉承Linux 的GNU 风格,借助与源码公开,使他迅速成为世界上目前应用最为广泛的站点制作语言之一。

借助与C++的形式,引用类的概念,使得代码的可重复性应用便的异常简单。

加上他和Linux,Apache 和MySql 的紧密配合,关键性的应用也没有问题(有名的Sina就是采用Php)。

同时,PHP第四代Zend(PHP4)的核心引擎正式版也已经发布了,整个程序的核心得到了大幅度的改进,让PHP程序的执行速度变得更快。

PHP 在最佳化之后的效率,已比传统CGI或者ASP等程序有了更好的表现。

而且正因为PHP是免费的,因此任何人都可以访问PHP WEB站点,下载完整的源代码。

更重要的是:用PHP 编写的代码执行起来会更快,能实现同样功能的PHP代码,不用改变就可以在不同的WEB 服务器上、不同的操作系统下运行。

就凭这一点,你就已经有足够的理由选择PHP。

除了能够精确的控制WEB页面的显示内容之外,用户还可以通过使用PHP发送HTTP报头、用户可以通过PHP设置cookies、管理用户身份识别并对用户浏览页面进行重定向。

PHP具有非常强大的数据库支持功能,能够访问几乎目前所有较为流行的数据库系统。

此外,PHP可以与多个外接库集成,为用户提供更多的实用功能,如生成PDF文件等。

2 LAMP组合的介绍
LAMP是一个缩写,它指一组通常一起使用来运行动态网站或者服务器的开源软件,包括:Linux操作系统,Apache网络服务器,MySQL数据库,Perl、PHP或者 Python编程语言,此篇文章中LAMP指的是Linux + Apache + MySQL + PHP.
2.1 Linux简介
操作系统最好的选择当然是使用面费又稳定的Linux系统。

Linux是在1991年发展起来的与UNIX兼容的操作系统,可以免费使用,它的源代码可以自由传播且可任人修改、充实、发展。

Linux本身是一个完整的32位的多用户、多任务操作系统。

而本次开发过程使用的版本是飓风软件公司出品的国产Linux操作系统。

它是经汉化后形成的Linux操作系统。

凡是Linux操作系统均可到网上下载。

随着Linux逐渐进入中国,越来越多的公司尤其是中小型公司倾向与选择Linux作为服务器。

不仅因为Linux系统是开源的,可以免费使用为公司节约了大量成本,更重要的是Linux系统作为服务器非常好的安全性,可以避免相当多的安全隐患。

当然Linux操作系统不能为个人用户所喜爱,因为目前它没有windows操作系统那样的桌面可视化、操作方便性和非常多的软件兼容支持。

2.2 Apache简介
本系统的操作所使用的web服务器软件为Apache。

Apache是目前全世界的网站使用最多的服务器。

在2000年2月十全世界有58.08%的使用率。

同样地,Apache的优点也是稳定、快速与开放,同时也有众多的功能,并且可以在不同操作系统下执行。

前面的内容已经介绍了web 服务器负责完成传送显示在浏览器的 HTML 文件内容,而数据处理就是PHP 程序的工作了。

所以在服务主机使用PHP时必须将解读PHP程序代码的功能加到Apache ,也就是按装Apache 的PHP 模块(module)。

以往如果要加入PHP模块,就必须先将PHP的源代码编译成Apache 的模块,再将Apache加上PHP功能模块重新编译。

从PHP3开始就支持了Apache 的动态共享对象(Dynamic Shared Object , DSO)模块的功能,也就是说PHP3可以编译DSO模块,Apache 只需在需要执行时调用PHP3模块就可以使用PHP3的功能。

这样以来,即使修改PHP、换装新版本或是重新安装PHP都可以不必动用Apache ,当然PHP4 也可以编译DSO模块。

2.3 MySQL简介
MySQL数据库系统与PHP整合使用是一个高效率的组合。

MySQL是一个多用户
(Multi-user)、多线程(Multi-thread)的SQL数据库系统,使用目前最普遍地数据库标准语言:SQL(Structured Query Language)。

MySQL包括了服务器端程序与多种用户端程序及程序库,并且可以在不同平台执行。

其特点还有稳定、快速与高灵活性等。

MySQL有瑞典的T.c.X DataKonsultAB公司开发出来,开发的主要目的就是以快速、健全以及使用微目标,最初的开发即是因为该公司需要能在廉价的主机上执行,优于当时各种
商用数据库,且快速管理庞大数据库的SQL服务器。

MySQL是一个还在开发中的数据库系统,但是其效能已经非常优秀。

在MySQL网站()上你可以看到它们的使用记录是以管理40个以上的数据库,超过10000个表,同时其中还有500个以上的表超过7百万记录,而这些数据总共超过了10Gbytes的容量。

2.4 PHP简介
PHP的全名即是Hypertext Processor,最早的名称由来则是来自PHP Tools(Personal HomePage Tools),PHP的程序引擎是一个公布源代码的Open Source 成员。

PHP是一种“服务器端的HTML嵌入式的描速语言(HTML - embedded scripting language)”。

其语法混合了C、Java、Perl以及PHP式的新式语法,它比CGI或者Perl可更快速地执行动态网页,同时PHP的数据库层操作功能强大,这使得PHP语言这几年飞速发展,风靡全球。

以下是PHP的基本特点:
1)开放源代码――所有的源代码都可以得到。

2)免费使用――PHP是一个免费软件,尽可放心使用。

3)基于服务器端――由于PHP是在Web服务器端运行的,所以它的程序可以很大、很复杂而不会降低客户端的运行速度。

4)跨平台――PHP程序可以在UNIX、Linux或者Windows操作系统下运行。

5)嵌入HTML――PHP语言可以嵌入到HTM内部,则易学。

6)还有语言简单、效率高、分析XML、数据库模块、文件存取、文本处理、复杂的变量,图象处理等特点。

最新PHP5.0的特点:
1)别名――通过引用别名为变量赋值,给编程带来极大方便。

2)扩充了API模块――提供扩展接口模块。

3)个性化的Java支持――PHP5.0和Java的交互。

4)对象和数组嵌套――实现功能更加强大的对象以及数组嵌套。

5)面向对象的编程――为面向对象的编程、构造类以及对象提供扩展的功能和新特征。

6)还包括如自动资源释放、布尔类型、进程生成、COM/DCOM支持、与PHP4.0的兼容性很好、配置、加密支持、类型检查、FTP支持、PHP4新增函数或功能增强函数、“Here”打印、HTTP Session fallback系统、ISAPI支持、内存、多维数组、其他类成员函数、对象重载支持、输出缓冲支持、支持引用等特点。

编写好后,将其放在服务器的提供的Web 的目录里,通过IE浏览器可看到结果“我的第一个PHP程序!”。

创建一个PHP应用程序,实际上是相当于创建了一个PHP脚本文件。

在服务器将输出信息发送到客户端之前,网络服务器会率先将文件中的PHP语言进行加工处理。

如果您的服务器不支持PHP,通常情况下,网络服务器会直接将超文本文件送到客户的浏览器上以表示对HTTP的要求作出应答;如果服务器支持PHP,则在服务器响应一个对PHP文件的请求时,会进行下列处理:
首先在一个PHP文件内,标准的HTML编码会被直接送到浏览器上,而内嵌PHP程序却是先被网络服务器解释执行。

如果是标准输出的话,输出信息也将作为标准的HTML 而被送至浏览器显示给客户。

2.5 配置LAMP开发环境
方法一:
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执行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执行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”存盘,这样就完成了。

这回再到浏览器下执行一下这个目录下的index.php文件,这下应该出现Mysql的管理界面了而且还是中文,是不是很舒服!
方法二:
目前网上有好几款AMP集成开发包,不仅有LINUX环境下的还有windows环境下
的,XAMPP就是其中一款功能比较齐全的整合包,安装当然要简单的多,而且我们是通过在windows下开发,然后在LINUX下测试,所以我们选择windows环境下的XAMPP整合包进行安装。

安装方法:下载XAMPP软件,点击安装即可。

3 数据库分析与设计
3.1 MYSQL数据库说明
本系统采用MYSQL数据库,并用phpMyAdmin工具对数据库进行操作。

MySql是一种真正的网络数据库,它采用的是client/server体系结构,在server端能够对数据库进行访问,在client端,不能直接对数据库本身进行操作,它只是收集用户的请求,并通过网络将请求发送给server端的进程。

这些操作可以分别由用户终端的mysql进程和数据库系统的mysqld进程完成。

为了操作的习惯,安装了一个phpMyAdmin,它是Windows风格的界面,通过浏览器来运行,相当方便,我们可以跳过繁琐的数据库语句,直接来建立数据库、数据表等等,只要在URL中输入http://localhost /phpmyadmin/index.php,就可以从数据库首页开始进行访问和数据的建立及修改。

MySQL在Linux下数据库名、表名、列名、别名大小写规则是这样的:
1)数据库名与表名是严格区分大小写的;
2)表的别名是严格区分大小写的;
3)列名与列的别名在所有的情况下均是忽略大小写的;
4)变量名也是严格区分大小写的;
而MySQL在Windows下都不区分大小写。

我们是在Windows下开发系统,在Linux 下测试运行,所以我们按照Linux下的规则建立Mysql数据库。

3.2 数据库设计
建立数据库stdent,选择字符集为GBK格式。

CREATE DATABASE `leakey` DEFAULT CHARACTER SET gbk COLLATE
gbk_chinese_ci;
创建以下25个数据库表,具体代码见(附录一)。

现以创建管理员表std_supser为例说明。

创建表std_spuser代码:
CREATE TABLE IF NOT EXISTS `std_spuser` (
`spuser_id` int(11) NOT NULL AUTO_INCREMENT,
`spuser_name` varchar(30) NOT NULL,
`spuser_password` varchar(50) NOT NULL,
PRIMARY KEY (`spuser_id`)
) ENGINE=MyISAM DEFAULT CHARSET=gbk;
具体说明:
CREATE TABLE IF NOT EXISTS `std_spuser`意思是如果数据库不存在表std_spuser就创建表std_spuser;()内为表结构。

`spuser_id` int(11) NOT NULL AUTO_INCREMENT, //设置spuser_id字符为INT型,长度为11,不为空并自动增加。

`spuser_name` varchar(30) NOT NULL, //管理员用户名,字符为varchar型,长度为30 ,不为空。

`spuser_password` varchar(50) NOT NULL,//管理员密码,字符集为varchar型,长度为50,不为空。

PRIMARY KEY (`spuser_id`) //设置spuser_id为该表主键;
ENGINE=MyISAM DEFAULT CHARSET=gbk;//设置字符集为GBK格式。

其他表如下,建立过程也是如此形式。

1)奖励信息表,表名:std_award
2)惩处信息表,表名:std_punish
3)入学信息表,表名:std_enterinfo
4)毕业信息表,表名:std_graduateinfo
5)党建信息表,表名:std_party
6)还贷款信息表,表名:std_loan
7)成绩信息表,表名:std_score
8)社会活动信息表,表名:std_socialactive
9)勤工助学信息表,表名:std_work
10)学籍处理信息表,表名:std_school
11)批复信息表,表名:std_confirm
12)开关设置表,表名:std_button
13)邮件记录表,表名:std_mail
14)用户登陆信息表,表名:std_loginlog
15)用户操作信息表,表名:std_memberlog
16)选项信息表,表名:std_option
17)班级信息表,表名:std_class
18)消息信息表, 表名:std_message
19)功能权限信息表,表名:std_rights
20)管理用户信息表,表名:std_members
21)学生用户信息表,表名:std_user
22)分类表,表名:std_set
23)系统管理员表,表名:std_spuser
24)管理员操作日志表,表名:std_superlog
25)学籍信息表,表名:std_xueji
4 功能分析与设计
4.1 系统整体功能分析
学生信息管理系统按角色主要分为系统管理员、学工处高级用户、学工处行政岗用户(以下简称行政岗)、学工处贷款岗用户(以下简称贷款岗)、校浏览用户、学工办用户、院浏览用户、辅导员用户、学生用户九个用户组。

由系统管理员建立学工处高级用户,然后由学工处高级用户创建管理学工处贷款岗、学工处行政岗用户、校浏览用户;再由学工处行政岗创建学工办用户、院级书记,由学工办用户创建管理辅导员用户和院浏览用户。

校浏览用户可以按照班级、学院浏览全校学生用户信息。

学生用户统一由学工处行政岗用户或系统管理员导入,如图2.1所示。

图2.1 角色逻辑关系图
九个用户组分为六个层次,每个层级分级管理,上级用户分管下级用户,各司其职。

每个用户组具体功能。

每个用户组具体功能如表1所示。

1)以上功能权限为初始化功能,可在后台设置。

2)审核确认之后的信息如需修改需要批复才能够进行。

3)每一个用户的登陆页面必须是该用户最需要的:
○1学生用户:最新消息、修改过的信息、需要提交的信息
○2辅导员用户:最新消息、需要审核信息、需要录入信息
○3学工办用户:最新消息、需要审核信息、需要录入信息
○4行政岗用户:最新消息、需要审核信息、需要录入信息
○5贷款岗用户:最新消息、需要审核信息、需要录入信息
○6高级用户:最新消息、需要审核信息、需要录入信息
○7院浏览用户:可看到的全部学生,上面摆放控件(年级、专业、班级、性别、党建、省份、奖励、处分、学籍、贷款、毕业、层次、性质)。

○8校浏览用户:可看到的全部学生,上面摆放控件(学院、年级、专业、班级、性别、党建、省份、奖励、处分、学籍、贷款、毕业、层次、性质)。

4.2 用户登陆
系统总共有九个角色,其中后台地址保密,系统管理员是在后台登陆,其他八个角色是在前台登陆的,这样保证了系统后台的安全性和可维护性。

前台八个用户组登陆时是根据不同角色分为两种用户名,一种是学生用户,学生用户用户名由学工处统一导入,初始用户名和密码都是学生学号。

而其他七个角色用户则是由上级用户建立的,初始用户名和密码是由上级用户分配。

这样根据用户名特点系统自动识别该用户是学生用户还是其他教师管理用户,如果是学生用户则系统链接数据库表std_user检查登陆名和密码是否正确,如果是教师用户则系统连接数据库表std_member检查登陆名和密码是否正确,同时检查该用户是属于哪个用户组并分配该用户相应的权限。

用户登陆时系统还需要自动判断系统目前是否属于开放状态,或者部分开放状态。

系统在后台设置了完全开放、对教师用户开放、全部开闭三种状态。

如果系统处于完全开放状态,则学生用户和教师用户都可以进入系统;如果系统处于只对教师用户开放状态,则学生用户不能进入系统;如果系统处于全部关闭状态,则学生用户和教师用户都不能进入系统。

前台登陆页面如图2.2所示。

图2.2 系统前台登陆页面
登陆模块详细代码描述:
<?php
///////////////////////文件说明//////////////////////////////////////
//系统版本号:version 1.0 Beta
//功能描述:用户登陆显示
//版权声明:
//程序员: leakey
//完成时间:2008-10-01
//修改时间: 2008-10-06
//////////////////////////////////////////////////////////////////////
// 加载session开始
session_start();
// 加载前台常用函数
require "./config.php";
include(ROOTPATH."common/functions.php");
// 调整系统函数时间为中国上海+8区时间
date_default_timezone_set(PRC);
// 设置全局变量
$t->set_var(array("PutTime"=>date("Y-m-d g:i A",time()),
"PutTitle"=>$g_configuration[title],
"PutEmail"=>$g_configuration[email],
"putuser"=>$sessionname,
"PutCopyright"=>$g_configuration[copyright],
"PutUrl"=>$g_configuration[url]));
// 加载用户界面模版页面
$t->set_file(array("spdpmuser"=>"spdpmuser.htm",
"serdpmuser"=>"serdpmuser.htm",
"scanscl"=>"scanscl.htm",
"scangrade"=>"scangrade.htm",
"spcdpmuser"=>"spcdpmuser.htm",
"spoffuser"=>"spoffuser.htm",
"teacher"=>"teacher.htm",
"student"=>"student.htm",
));
// 加载登陆模版
$t->set_file("login" , "login.htm" );
////////////////////////学生用户登陆////////////////////////////////
if( $submit){
checksql($username); //过滤SQL注入
$username = htmlspecialchars(trim($username)); //格式化html代码
$password = md5(trim($password)); //密码进行MD5加密
if( "" == $username || "" == $password ) //检测用户名和密码是否为空
{
message( "用户名和密码不能为空!" , "#\" onclick=\"window.history.go(-1); return false;" ) ;
}
if(strlen($password) > 50 || strlen($password)<6) //检测密码长度是否符合规定
{
message("您输入的密码长度错误,请重新输入!","./login.php");
}
$name=eregi("^[1-9][0-9]{13}$",$username); //正则表达式检测用户名是否学生学号if($name) //如果用户名是学生
{
//判断学生权限是否开启
$result=$DB->fetch_array($DB->query("select * from ".$db_prefix."button"));
if('2'==$result['button_value'] or '1'==$result['button_value']){
message("系统关闭","./cancel.php");
}
// 检测用户名和密码是否正确
$result=$DB->fetch_array($DB->query("select * from ".$db_prefix."user where user_number = '$username' and user_password='$password'"));
if ($result) { //正确的话保存session
$_SESSION['username'] = $username;
$_SESSION['password'] = $password;
$_SESSION['group_id'] = "8";
message("登陆成功,欢迎您使用学生信息管理系统! ","./student.php");
}else{
message("您的用户名或密码错误,请重新登陆!","./cancel.php");
return false;
}
}
////////////////////////教师用户登陆////////////////////////////////
else{ //如果用户名是教师用户
//判断老师权限是否开启
$result=$DB->fetch_array($DB->query("select * from ".$db_prefix."button"));
if('1'==$result['button_value']){
message("系统关闭","./login.php");
}
// 判断输入的用户名和密码是否正确
$result=$DB->fetch_array($DB->query("select * from ".$db_prefix."members where
members_username = '$username' and members_password='$password'"));
if (!$result) { //如果输入的用户名或者密码有误
message("您的用户名或密码错误,请重新登陆!","./cancel.php");
return false;
} else { //否则保存SESSION用户名、密码、group_id
$_SESSION['group_id'] = $result['members_groupid'];
$_SESSION['username'] = $username;
$_SESSION['password'] = $password;
switch($_SESSION['group_id']) //switch语句选择用户角色
{
case '1': { //如果$_SESSION['group_id']为1则进入高级用户
message("登陆成功,欢迎您使用学生信息管理系统! ","./serdpmuser.php");}
case '2': { //如果$_SESSION['group_id']为2则进入行政岗用户
message("登陆成功,欢迎您使用学生信息管理系统! ","./spdpmuser.php");}
case '3': { //如果$_SESSION['group_id']为3则进入贷款岗用户
message("登陆成功,欢迎您使用学生信息管理系统! ","./spcdpmuser.php");}
case '4': { //如果$_SESSION['group_id']为4则进入校浏览用户
message("登陆成功,欢迎您使用学生信息管理系统! ","./scanscl.php");}
case '5': { //如果$_SESSION['group_id']为5则进入学工办用户
message("登陆成功,欢迎您使用学生信息管理系统! ","./spoffuser.php");}
case '6': { //如果$_SESSION['group_id']为6则进入院浏览用户message("登陆成功,欢迎您使用学生信息管理系统! ","./scangrade.php");}
case '7': { //如果$_SESSION['group_id']为7则进入辅导员用户message("登陆成功,欢迎您使用学生信息管理系统! ","./teacher.php");}
}
}
}
}
////////////////////////检测是否已登陆////////////////////////////////
if (isset($_SESSION["username"]) and isset($_SESSION["password"]))
{
$sys_groupid = $_SESSION['group_id']?$_SESSION['group_id']:'null';
switch($sys_groupid) //如果已经登陆则转入相应角色界面
{
case '1': { $sys_group = 'serdpmuser';
break;}
case '2': { $sys_group = 'spdpmuser';
break;}
case '3': { $sys_group = 'spcdpmuser';
break;}
case '4': { $sys_group = 'scanscl';
break;}
case '5': { $sys_group = 'spoffuser' ;
break;}
case '6': { $sys_group = 'scangrade' ;
break;}
case '7': { $sys_group = 'teacher';
break;}
case '8': { $sys_group = 'student';
break;}
}
message("您已经登陆,请不要重复登陆!", "$sys_group.php");
exit;}
////////////////////提前15天自动发送惩处信息//////////////////////////
$time = intval(strtotime("15 day")); // 赋值给$time 变量
$query = $DB->query("select * from ".$db_prefix."punish where pun_tell = '0'");
if('0'!=$DB->num_rows($query))
{
for($num=0;$num<$DB->num_rows($query);$num++)
{
$pun = $DB->fetch_array($query);
$punid = intval(strtotime($pun['pun_deldate'])/86400);
if($punid <= $time)
{
$sname = $pun['user_number'];
$class = $DB->fetch_array($DB->query("select * from ".$db_prefix."user where user_number =
'$sname'"));
$sclass = $class['user_class'];
$collage = $DB->fetch_array($DB->query("select * from ".$db_prefix."class where class_name = '$sclass'"));
$scollage = $collage['class_department'];
$query1 = $DB->query("select members_username from ".$db_prefix."members where
members_college = '$scollage' and members_groupid = '7'");
for($h=0;$h<$DB->num_rows($query1);$h++)
{
$teacher = $DB->fetch_array($query1);
$tname = $teacher[0];
$tclass = $DB->fetch_array($DB->query("select members_classes from ".$db_prefix."members where members_username = '$tname'"));
$len = strlen($tclass[0]);
$newlen = strlen(str_replace($sclass,"",$tclass[0]));
if($len != $newlen)
{
$teachername = $teacher[0];
}
}
$pid = $pun['punish_id'];
$tname = 't2';
$var = $sname.','.$tname.','.$teachername;
$vars = explode(",","$var");
$message_date=date("Y-m-d H:i ",time());
$terminus = intval(strtotime("20 day")/86400);
$username = "系统消息"; //发送人
$subject = "系统提示信息"; //消息主题
// 发送消息内容
$messagecontent = $class['user_username']."同学处分即将到期。

该同学处分信息如下:
<br><br>".$class['user_username']."同学,学号:".$sname."<br>系".$scollage.",".$collage['class_specialty']."专业,".$sclass."学生<br>处罚时间:".$pun['pun_date']."至".$pun['pun_deldate']."<br>处罚等级:
".$pun['pun_level']."<br>处罚原因:".$pun['pun_reason']."。

";
for($j=0;$j<=2;$j++){
$DB->query("insert into
".$db_prefix."message(message_sender,message_reciever,message_title,message_content,message_date,mess age_terminus)values('".addslashes($username)."','".addslashes($vars[$j])."','".addslashes($subject)."','".addslas hes($messagecontent)."','$message_date','$terminus')");
}
$DB->query("UPDATE ".$db_prefix."punish SET pun_tell = '1' where punish_id = '$pid'");
}
}
}
$t->pparse("OUT","login"); //输出界面
>
根据以上代码登录以后系统自动选择用户角色身份进入不同的用户界面。

4.3 功能界面描述
4.3.1 前台功能描述
以行政岗为例,行政岗用户登陆后的功能界面如图2.4所示。

图2.4 行政岗功能界面
1)高级搜索功能:高级搜索可以按照学院、专业、班级、姓名、学号、出生年月、是否欠缴学费、还/贷款情况、奖励级别、奖励等级、奖励名称、奖励时间、处分等级、处分时间、处分名称、学籍状态、勤工助学情况、是否毕业、民族、高考总分、生源、文理分类、政治面貌、特殊培养、层次、性质、班级职务、其他职务、补考情况、清考情况等字段进行搜索
2)浏览功能:基本信息、奖励信息、还贷款信息、党建信息、社会活动、成绩信息、毕业信息、欠费信息、入学信息、学籍处理信息等信息按照学院、专业、班级进行浏览。

3)录入功能:基本信息录入、奖励信息录入、院级惩处信息录入、校级惩处信息录入、还贷款信息录入、党建信息录入、社会活动录入、成绩信息录入、毕业信息录入、欠费信息录入、入学信息录入、学籍处理信息录入。

4)审核功能:基本信息审核、奖励信息审核、党建信息审核、社会活动审核、毕业信息审核。

5)批复功能:基本信息批复、奖励信息批复、院级惩处信息批复、校级惩处信息录入、还贷款信息批复、党建信息批复、社会活动批复、成绩信息批复、欠费信息批复、入学信息批复、学籍处理信息批复。

6)消息提醒功能:站内消息未读提醒、未审核信息提醒、其他提醒。

查询界面:信息查询。

7)帐号管理功能:个人信息修改。

8)用户管理功能:建立用户、编辑用户。

9)消息管理功能:收件箱、发件箱、发送消息
其他用户功能界面按照角色不同分配给不用的功能页面。

4.3.2 后台功能描述
后台系统管理员登陆后的功能界面如图2.5所示。

图2.5 后台功能界面
1)网站系统设置:邮件设置和系统开关设置。

2)高级用户管理:添加用户和编辑用户。

3)权限设置:设置各角色用户组所开放的权限。

4)数据导入:学生基本信息导入和班级导入。

5)选项管理:添加总选项、添加子选项、编辑选项。

6)数据库管理:数据库备份、数据库优化、数据库恢复、数据库修复。

7)日志管理:操作记录管理、登陆记录管理。

8)管理员管理:添加管理员、编辑管理员、查看PHP信息、退出。

4.4 具体功能模块设计
4.4.1 信息导入功能
1)学生基本信息导入:。

相关文档
最新文档