0x01 总体设计
留言模块主要包括以下几个子模块:
- 模型模块(Model):模型类中封装好用户操作数据库的各种方法,供控制器调用。
- 视图模块(View):Web视图页面收集用户留言。
- 控制器模块(Controller):控制器处理Web视图页面收集的数据。
0x02 详细设计
(1)查看留言记录
- 在控制器的selete()方法中,调用模型类中封装的getSelete()方法查询数据表中所有的数据,并显示到前端。
- 在Web页面中循环遍历返回的索引数组,即可显示留言列表。
(2)添加留言记录
- 在前端页面的form表单中获取用户输入的数据。
- 在控制器的add()方法中,调用模型类中封装的getInsert()方法向数据表中添加数据。
- 前端页面跳转到留言列表中。
(3)修改留言记录
- 当要修改数据时,先查找要修改的内容,把查找到的数据放到表单中。
- 在控制器的update()方法中,调用模型类中封装的getUpdate()方法对留言数据进行修改。
(4)删除留言记录
- 在Web页面点击“删除”,进入控制器的delete()方法。
- 在控制器的delete()方法中,调用模型类中封装的getDelete()方法,删除指定的留言数据。
- 删除成功后页面跳转到留言列表页。
0x03 MVC目录结构
1 2 3 4 5 6 7 8 9
| MVC |-- controller //控制器目录 |-- model //模型目录 |-- view //视图目录 |-- core //核心目录 ||--- MVCFunction.class.php //核心文件 ||--- DB.class.php //操作数据库核心文件 |-- index.php //入口文件 |-- conf.php //连接数据库配置文件
|
0x04 数据表设计
创建数据表messages的sql代码如下:
1 2 3 4 5 6 7 8
| CREATE TABLE `messages`( `id` INT(11) NOT NULL AUTO_INCREMENT, `name` VARCHAR(30) NOT NULL DEFAULT '', `email` VARCHAR(35) NOT NULL DEFAULT '', `content` VARCHAR(200) NOT NULL DEFAULT '', `message_time` DATETIME DEFAULT NULL, PRIMARY KEY(`id`) )ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
结构如下:
0x05 MVC配置部署
(1)先对数据库连接文件进行配置,即conf.php文件:
1 2 3 4 5 6
| <?php define('DB_HOST','localhost'); define('DB_USER','root'); define('DB_PASS',''); define('DB_NAME','messages_board'); ?>
|
(2)控制器部署
在controller控制器目录下创建MessageController.class.php控制器文件,并在其中创建MessageController控制器类,代码如下:
1 2 3 4 5
| <?php class MessageController{ } ?>
|
(3)模型部署
在model模型目录下创建MessageModel.class.php控制器文件,并在其中创建MessageModel模型类,代码如下:
1 2 3 4 5
| <?php class MessageModel{ } ?>
|
(4)视图部署
在view视图目录下创建MessageView.class.php控制器文件,并在其中创建MessageView视图类,代码如下:
1 2 3 4 5
| <?php class MessageView{ } ?>
|
实现上述部署后,当前目录状态如下:
1 2 3 4 5 6 7 8 9 10 11 12
| MVC |-- controller //控制器目录 ||--- MessageController.class.php //留言板控制器 |-- model //模型目录 ||--- MessageModel.class.php //留言板模型 |-- view //视图目录 ||--- MessageView.class.php //留言板视图 |-- core //核心目录 ||--- MVCFunction.class.php //核心文件 ||--- DB.class.php //操作数据库核心文件 |-- index.php //入口文件 |-- conf.php //连接数据库配置文件
|
0x06 代码实现
完整代码已上传到github:https://github.com/LetheSec/MVC_MessageBoard
0x07 结果展示
初始页面:
点击添加留言即可开始留言:
可对留言进行修改或删除:
Author:
Xiaojian Yuan
Permalink:
https://lethe.site/2019/0728/MVC-Simple-Message-Board/
License:
Copyright (c) 2022 CC-BY-NC-4.0 LICENSE
Slogan: