A.系统分析
B.数据库设计流程
C.搭建系统架构的方法
D.ADODB类库技术的应用
E.熟悉ADODB类库操作mySql的使用方法
F.webBrowser预览与打印
G.生成excel报表
H.分类查询实现的应用
I.文件上传的实现方法
1.开发背景
2.需求分析
3.系统分析
- 系统目标
- 首页设计简洁、大方、得体,功能结构清晰,突出重点
- 可操作性强,避免复杂的、有异议的链接
- 浏览速度快,尽量避免长时间打不开页面的情况发生
- 会议记录信息查看部分,可以通过会议的不同属性来搜索
- 实现如打印预览、打印、Excel报表导出等独特功能
- 按用户使用权限显示可执行的操作
- 管理模式可以对用户信息和会议记录信息进行查看和管理操作
- 易维护,并提供二次开发支持
- 系统功能结构
4.软件开发环境
- 服务器端
- 操作系统windows 10 /Linux(推荐)
- 服务器Apache(phpstudy集成)
- PHP软件(phpstudy集成)
- 数据库:mySQL(phpstudy集成)
- ADODB类库
- 开发工具:Visual Studio Code
- 浏览器:IE 9.0及以上版本
- 分辨率:最佳效果为1024 x 768像素
- 客户端端
- 浏览器:推荐IE 9.0及以上版本
- 分辨率:最佳效果为1024 x 768像素
5.文件夹组织结构
6.数据库设计
数据库分析
根据系统分析和系统功能结构,规划出本系统的数据库实体关系E-R图。
1.用户信息实体
2.会议记录信息实体
3.部门信息实体
7.根据E-R图创建数据库和数据表
下面介绍各个数据表的结构和字段说明
1.tb_meeting_user(用户信息表)
用户信息表主要用于存储用户的信息,如下截图:
2.tb_meeting_info(会议记录信息列表)
会议记录信息列表主要用于添加会议的相关信息,如下截图:
3.tb_meeting_depart(部门信息表)
部门信息表主要用于存储应用该系统的企事业单位的相关部门。如下截图:
8.数据库连接文件:01/conn/conn.php
<?php// 数据库连接文件$conn=mysql_connect("localhost","root", "root");mysql_select_db("tb_meeting",$conn);mysql_query("SET NAMES GBK"); // 防止乱码
?>
9.登录模块设计
- 用户权限判断技术:01/index.php
<?phpsession_start();// 判断当前登录状态if(isset($_SESSION["name"]) and isset($_SESSION["id"]) and isset($_SESSION["rights"])){echo "<meta http-equiv=\"refresh\" content=\"0;url=manager.php\" />";}else{echo "<meta http-equiv=\"refresh\" content=\"0;url=login.php\" />"}
?>
在index.php文件中通过SESSION变量自动判断登录状态。如果用户状态登录被激活,则自动跳转到会议管理首页,否则跳转到用户登录界面。
小提示:refresh用于刷新和跳转(重定向)到页面,例如
<meta http-equiv="refresh" content="5; url=http://www.baidu.com/" />
意思是说5秒后跳转到百度页面
- 用户登录实现过程
创建前台登录界面(login.php)完成用户登录表单的设计,当单击“登录”按钮时,将用户名和密码提交到处理页(login_chk.php),完成登录用户的验证操作。
01/login.php文件的关键代码如下:
<!DOCTYPE html>
<html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1"><title>用户登录</title></head><body><table cellpadding="0" cellspacing="0"><form method="post" action="login_chk.php"><tr><td width="58" height="42"><div align="right">用户名:</div></td><td width="163"><input class="input1" id="username" type="text" name="username" onmouseover="this.style.backgroundColor='#deebef'" onmouseout="this.style.backgroundColor=''"/></td></tr><tr><td width="58" height="42"><div>密 码:</div></td><td width="163"><input class="input2" id="pass" type="password" name="pass" onmouseover="this.style.backgroundColor='#deebef'" onmouseout="this.style.backgroundColor=''" /></td></tr><tr><td colspan="2" height="22"><center><input name="submit" type="submit" class="btnlogin" value="登录" /> <input name="reset" type="reset" class="btnreset" value="重置" /></center></td></tr></form></table></body>
</html>
登录处理文件login_chk.php,完成对系统提交数据的判断,并且更新用户登录的次数和时间。
01/login_chk.php文件的关键代码如下:
<?phpheader("Content-Type:text/html;charset=utf-8");date_default_timezone_set('PRC'); // 设置为北京时间session_start();include_once("conn/conn.php"); //加载数据库连接文件if(empty($_POST["username"]) or empty($_POST["pass"])){ // 用户名和密码如果为空,提示不能为空,跳转回登录页面echo "<script>alert('用户名和密码不能为空!');history.go(-1);</script>";}else{ //如果用户名和密码不为空// 取得客户端的数据$username = $_POST["username"];$pass = $_POST["pass"];// 判断登录用户名是否存在$sqltest = "select * from tb_meeting_user where userName = '$username'";$testrst = mysql_query($sqltest);// 从结果集中取得一行作为关联数组$testrst = mysql_fetch_array($testrst,MYSQL_ASSOC);// 如果用户名存在if($testrst){$sqlstr = "select * from tb_meeting_user where userName = '$username' and userPassword = '$pass'";$rst = mysql_query($sqlstr);$rst = mysql_fetch_array($rst,MYSQL_ASSOC);// 如果密码正确if($rst){if($rst['userWhether'] == 0){ // 如果用户没有被冻结// 赋值给SESSION变量$_SESSION['id'] = $rst['userId'];$_SESSION['name'] = $rst['userName'];$_SESSION['rights'] = $rst['userRights'];$_SESSION['lasttime'] = $rst['userLastLoginDate'];// date()格式化本地日期和时间,并返回已格式化日期字符串// Y(四位年份表示),m(月份数字表示(01-12)),d(一个月=中的第几天从01-31)// G(24小时制,不带前导0(0-23)),i(分,带前导0(00-59)),s(秒,带前导0(00-59))$logindate = date("Y-m-d").' '.date("H:i:s"); // 当前登录时间$logincount = $rst['userLoginCount']; // 当前登录次数$logincount++; // 登录次数自增1echo $logindate;// 更新数据库登录次数和登录时间$sqlstrud = "update tb_meeting_user set userLoginCount = $logincount,userLastLoginDate = '$logindate' where userId = $_SESSION[id]";echo $sqlstrud;mysql_query($sqlstrud); // 更新数据库// 2秒后进入管理页面echo "<meta http-equiv=\"refresh\" content=\"2;url=manager.php\" />";// 等待加载图片// echo "<img src='images/loginwait.jpg' width='1003' height='636' />";}else{ // 如果用户被冻结echo "<script>alert('该用户账号已被冻结,请联系管理员!');history.go(-1);</script>";}}else{// 如果密码错误echo "<script>alert('密码错误!请重新登录。');history.go(-1);</script>";}}else{ // 如果用户名不存在,// 返回登录页面echo "<script>alert('该用户名不存在!请重新登录。');history.go(-1);</script>";}}
?>