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
<?php
    session_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>密&nbsp;&nbsp;码:</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="登录" />&nbsp;
                        <input name="reset" type="reset" class="btnreset" value="重置" />
                    </center>
                </td>
            </tr>
        </form>
    </table>

  </body>
</html> 

登录处理文件login_chk.php,完成对系统提交数据的判断,并且更新用户登录的次数和时间。
01/login_chk.php文件的关键代码如下:

<?php
    header("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++;                                  // 登录次数自增1
                    echo $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>";

        }
    }
?>
Logo

快速构建 Web 应用程序

更多推荐