PHP动态网站开发项目教程(微课版)

在真实编程环境中完成完整项目
分享 推荐 2 收藏 7 阅读 680
牟奇春 (作者) 978-7-115-63838-0

关于本书的内容有任何问题,请联系 马小霞

1.不单独讲解理论知识,而是直接以项目入手,带领大家从零开始在真实编程环境中完成项目的编写。在项目制作的过程,“顺带”讲解理论知识。项目完成以后,基本的理论知识也就掌握了。从我们实际教学来看,自从我们采用上述“项目化教学”以来,学生学习的情况明显好转。
2.四川省十四五省级精品在线开放课程配套教材

内容摘要

本书精选3个项目实例,将PHP和MySQL数据库的相关知识点融入其中,带领读者从零开始编写代码,直到完成整个项目。通过学习本书,读者将学会如何使用PHP配合MySQL数据库实现数据的增、删、改、查,从而能够使用PHP和MySQL数据库完成常用小型Web应用程序的编写。
本书包含3个项目,分别是项目1“会员管理系统”、项目2“在线投票系统”、项目3“使用Laravel框架改写会员管理系统”。前两个项目采用面向过程的程序设计方式完成代码编写,第三个项目采用面向对象的程序设计方式,并使用PHP经典框架Laravel来完成代码编写。3个项目内容由浅入深,层层递进。
本书是四川省精品在线开放课程“动态网站开发”的配套教材,在线上配备完整的教学视频,并支持线上答疑。

目录

目录
项目1 会员管理系统

任务1
准备开发环境和编程
环境 1
情景导入 1
职业能力目标及素养目标 1
子任务1.1 配置PHP开发环境 2
【任务提出】 2
【知识储备】 2
【任务实施】 2
1.1.1 安装小皮面板 2
1.1.2 配置小皮面板 3
子任务1.2 使用PHP编程环境 5
【任务提出】 5
【知识储备】 5
【任务实施】 6
1.2.1 PhpStorm的安装和启动 6
1.2.2 在小皮面板中配置网站 6
1.2.3 在PhpStorm中编辑文件和配置
服务器环境 6
【素养小贴士】 9
【任务小结】 9
【巩固练习】 9

任务2
项目前端开发 10
情景导入 10
职业能力目标及素养目标 10
子任务2.1 项目开发前的准备工作 10
【任务提出】 10
【任务实施】 10
2.1.1 项目需求设定 10
2.1.2 PHP的发展历史 12
【素养小贴士】 13
子任务2.2 创建首页 13
【任务提出】 13
【任务实施】 13
2.2.1 创建项目 13
2.2.2 部署项目 15
子任务2.3 制作注册页面前端部分 16
【任务提出】 16
【任务实施】 17
2.3.1 创建文件 17
2.3.2 制作注册页面表单 17
2.3.3 设置表单控件name属性 18
【知识储备】 19
【任务小结】 19
【巩固练习】 19

任务3
会员管理系统用户注册 21
情景导入 21
职业能力目标及素养目标 21
子任务3.1 获取表单数据 21
【任务提出】 21
【任务实施】 21
3.1.1 从后端获取前端表单数据 21
3.1.2 书写PHP代码 22
3.1.3 输出数据 22
子任务3.2 创建数据库和数据表 23
【任务提出】 23
【任务实施】 23
3.2.1 开启数据库服务 23
3.2.2 安装可视化数据库管理工具 24
3.2.3 创建数据库和数据表 25
3.2.4 数据表字段类型说明 26
子任务3.3 将注册信息写入数据库 27
【任务提出】 27
【任务实施】 27
3.3.1 连接数据库服务器 27
3.3.2 设置字符集 28
3.3.3 设置SQL查询语句 28
3.3.4 执行SQL查询语句 29
3.3.5 项目阶段性成果 30
子任务3.4 判断用户名是否被占用 31
【任务提出】 31
【任务实施】 31
3.4.1 通过SQL语句判断用户名是否
被占用 31
3.4.2 使用SQL中的SELECT语句 31
3.4.3 在PhpStorm中配置数据源 33
子任务3.5 表单验证 35
【任务提出】 35
【任务实施】 35
3.5.1 重视数据验证 35
3.5.2 在前端验证表单数据 35
3.5.3 在前端验证数据 36
3.5.4 在后端验证表单数据 37
【素养小贴士】 38
【任务小结】 38
【巩固练习】 38

任务4
会员管理系统用户登录、资料
修改及注销 40
情景导入 40
职业能力目标及素养目标 40
子任务4.1 用户登录 40
【任务提出】 40
【任务实施】 40
4.1.1 创建用户登录文件 40
4.1.2 制作用户登录后端文件 41
4.1.3 通过Session变量保存登录
标志 42
子任务4.2 注销登录 44
【任务提出】 44
【任务实施】 44
4.2.1 在导航栏中使用文件包含 44
4.2.2 实现导航栏当前栏目高亮功能 45
子任务4.3 会员资料修改 47
【任务提出】 47
【任务实施】 47
4.3.1 优化登录页面跳转逻辑 47
4.3.2 创建会员资料修改页面 47
4.3.3 制作资料修改后端文件 51
【任务小结】 52
【巩固练习】 52

任务5
会员管理系统管理员功能 54
情景导入 54
职业能力目标及素养目标 54
子任务5.1 管理员登录 54
【任务提出】 54
【任务实施】 55
5.1.1 修改数据表结构以实现管理员
登录 55
5.1.2 管理员登录后查看导航栏的
变化 56
子任务5.2 管理员查看所有会员 57
【任务提出】 57
【任务实施】 57
5.2.1 判断管理员权限 57
5.2.2 循环输出数据表记录 57
5.2.3 了解PHP中的循环语句 59
子任务5.3 数据分页 61
【任务提出】 61
【任务实施】 62
5.3.1 理解分页的基本原理 62
5.3.2 制作分页文件 62
5.3.3 实现分页 64
【知识储备】 66
子任务5.4 设置或取消管理员 67
【任务提出】 67
【任务实施】 68
5.4.1 修改文件静态内容 68
5.4.2 制作setAdmin.php文件 68
5.4.3 避免删除管理员admin 69
子任务5.5 管理员删除用户 70
【任务提出】 70
【任务实施】 70
5.5.1 修改前端页面 70
5.5.2 制作后端页面 71
【素养小贴士】 71
子任务5.6 管理员修改会员资料 72
【任务提出】 72
【任务实施】 72
5.6.1 添加资料修改链接 72
5.6.2 修改modify.php文件 73
【任务小结】 74
【巩固练习】 74

任务6
会员管理系统项目优化 76
情景导入 76
职业能力目标及素养目标 76
子任务6.1 优化跳转目标页面 76
【任务提出】 76
【任务实施】 76
6.1.1 文件跳转时添加来源参数 76
6.1.2 读取来源参数,并跳转至目标
页面 78
子任务6.2 注册时使用AJAX验证用户名
是否有效 79
【任务提出】 79
【任务实施】 79
6.2.1 理解异步 79
6.2.2 初识jQuery 80
6.2.3 引入jQuery库文件 80
6.2.4 在表单中添加事件 80
6.2.5 实现方法checkUsername() 81
6.2.6 使用jQuery中封装的AJAX 81
6.2.7 制作AJAX后端文件 83
6.2.8 在Chrome浏览器中调试网络
通信 84
子任务6.3 beforeSend的使用 85
【任务提出】 85
【任务实施】 85
6.3.1 准备loading图标 85
6.3.2 修改AJAX通信代码 86
子任务6.4 登录时使用AJAX判断用户名
是否有效 87
【任务提出】 87
【任务实施】 87
6.4.1 修改login.php文件 87
6.4.2 显示异步登录的效果 89
子任务6.5 验证码的使用 89
【任务提出】 89
【知识储备】 89
【任务实施】 90
6.5.1 安装GD库 90
6.5.2 在PHP中使用验证码 91
6.5.3 判断验证码是否填写正确 95
【素养小贴士】 96
【任务小结】 96
【巩固练习】 96
项目2 在线投票系统

任务7
项目开发前的准备工作 99
情景导入 99
职业能力目标及素养目标 99
子任务7.1 项目介绍 99
【任务提出】 99
7.1.1 项目基本需求分析 100
7.1.2 项目详细设计 100
7.1.3 项目展示 100
子任务7.2 版本控制与代码托管 102
【任务提出】 102
【知识储备】 102
7.2.1 版本控制 102
7.2.2 Git介绍 103
7.2.3 码云的使用 104
7.2.4 Git的工作流程 104
7.2.5 在PhpStorm中使用Git 105
子任务7.3 数据库设计的方法及原理 110
【任务提出】 110
【知识储备】 110
7.3.1 数据库设计的方法 110
7.3.2 数据库设计的基本步骤 111
7.3.3 概念结构设计 111
7.3.4 实体-联系图(E-R模型) 111
子任务7.4 创建数据库 113
【任务提出】 113
【任务实施】 113
7.4.1 实例详解 113
7.4.2 主键和外键 114
7.4.3 如何创建外键 115
7.4.4 数据库的导入和导出 117
【素养小贴士】 118
【任务小结】 119
【巩固练习】 119

任务8
在线投票系统首页制作及投票
功能实现 123
情景导入 123
职业能力目标及素养目标 123
子任务8.1 首页静态页面制作(Bootstrap
布局) 123
【任务提出】 123
【任务实施】 123
8.1.1 了解Bootstrap 123
8.1.2 认识Bootstrap的栅格系统 124
8.1.3 引入Bootstrap库文件 125
8.1.4 Bootstrap布局测试 125
8.1.5 在项目首页中使用Bootstrap
布局 126
8.1.6 在PhpStorm中下载外部库
文件 129
子任务8.2 首页动态数据读取 130
【任务提出】 130
【任务实施】 130
8.2.1 在数据库中初始化数据表 130
8.2.2 在首页中读取数据表内容并循环
输出已有车辆信息 130
【任务小结】 132
【巩固练习】 132

任务9
在线投票系统投票功能
实现 135
情景导入 135
职业能力目标及素养目标 135
子任务9.1 游客投票功能实现 135
【任务提出】 135
【任务实施】 135
9.1.1 修改前端页面文件 135
9.1.2 制作后端投票文件 136
子任务9.2 整合会员登录系统 136
【任务提出】 136
【任务实施】 136
9.2.1 分析整合文件 136
9.2.2 了解前端UI框架Layui 137
9.2.3 使用Layui显示注册和登录
页面 137
9.2.4 优化弹窗跳转逻辑,匹配新的
数据表 139
【知识储备】 140
子任务9.3 登录用户实现投票 140
【任务提出】 140
【任务实施】 141
9.3.1 了解MySQL的事务机制 141
9.3.2 制作登录权限检查文件 141
9.3.3 实现投票功能 142
【任务小结】 143
【巩固练习】 143

任务10
在线投票系统投票限制 146
情景导入 146
职业能力目标及素养目标 146
子任务10.1 一人一天只能给一辆车
投5票 146
【任务提出】 146
【任务实施】 146
10.1.1 了解投票限制的常见手段 146
10.1.2 设置一人一天只能给一辆车
投5票 147
【知识储备】 147
子任务10.2 一人一天只能给3辆车
投票 149
【任务提出】 149
【任务实施】 149
10.2.1 分析一人一天只能给3辆车投票
的逻辑 149
10.2.2 理解GROUP BY语句 149
10.2.3 实现一人一天只能给3辆车
投票 151
子任务10.3 投票时间间隔 151
【任务提出】 151
【任务实施】 151
10.3.1 修改数据表字段类型 151
10.3.2 判断投票时间间隔 152
10.3.3 转换MySQL中的时间日期
格式 152
子任务10.4 IP地址限制 154
【任务提出】 154
【任务实施】 155
10.4.1 编写IP地址限制代码 155
10.4.2 总结MySQL中的日期和时间
函数 155
子任务10.5 使用Layui显示验证码 156
【任务提出】 156
【任务实施】 156
10.5.1 使用layer.open()方法 156
10.5.2 在弹窗中显示验证码 156
10.5.3 优化弹窗显示 158
子任务10.6 异步投票 161
【任务提出】 161
【任务实施】 161
10.6.1 给“票数”添加ID 161
10.6.2 使用jQuery封装的AJAX实现
异步投票 162
10.6.3 制作异步投票后端文件 163
【任务小结】 164
【巩固练习】 164

任务11
在线投票系统管理员功能 166
情景导入 166
职业能力目标及素养目标 166
子任务11.1 管理员查看车辆列表 166
【任务提出】 166
【任务实施】 166
11.1.1 修改前端展示页面 166
11.1.2 制作管理员后端文件 167
子任务11.2 管理员添加新的车辆(一) 168
【任务提出】 168
【任务实施】 168
11.2.1 了解表单的enctype属性 168
11.2.2 设置PHP中的上传文件参数 168
11.2.3 制作车辆添加前端页面 169
11.2.4 制作车辆添加后端页面 170
子任务11.3 管理员添加新的车辆(二) 171
【任务提出】 171
【任务实施】 171
11.3.1 编写车辆添加后端代码 171
11.3.2 获取数组内元素 173
11.3.3 生成唯一文件名 173
子任务11.4 管理员修改和删除车辆资料 174
【任务提出】 174
【任务实施】 174
11.4.1 修改前端页面 174
11.4.2 制作修改车辆资料后端文件 176
子任务11.5 管理员删除车辆资料 178
【任务提出】 178
【任务实施】 178
11.5.1 修改前端页面 178
11.5.2 制作删除车辆后端文件 179
子任务11.6 ECharts的基本使用 180
【任务提出】 180
【任务实施】 180
11.6.1 了解ECharts 180
11.6.2 快速掌握ECharts应用 181
子任务11.7 ECharts图表数据异步
加载 185
【任务提出】 185
【任务实施】 185
11.7.1 异步加载ECharts数据 185
11.7.2 制作后端接口文件 186
11.7.3 制作车辆得票数显示页面 188
11.7.4 修改ECharts图表格式 190
11.7.5 生成饼图 191
【任务小结】 195
【巩固练习】 195
项目3 使用Laravel
框架改写会员管理系统

任务12
面向对象的程序设计和PDO的使用 198
情景导入 198
职业能力目标及素养目标 198
子任务12.1 面向对象的程序设计简介 198
【任务提出】 198
【知识储备】 199
12.1.1 面向对象和面向过程的区别 199
12.1.2 面向对象编程的三大特性 200
子任务12.2 PDO的使用 205
【任务提出】 205
【任务实施】 205
12.2.1 使用PDO的准备工作 205
12.2.2 使用PDO连接数据库 206
12.2.3 使用PDO查询数据表记录 207
12.2.4 使用PDO实现数据的增、
删、改 208
12.2.5 使用PDOStatement 预处理 209
【任务小结】 210
【巩固练习】 210

任务13
Laravel中的视图、路由、控制器、验证码 214
情景导入 214
职业能力目标及素养目标 214
子任务13.1 Laravel的安装和简单使用 214
【任务提出】 214
【任务实施】 214
13.1.1 安装Laravel 214
13.1.2 了解Laravel的MV 217
13.1.3 了解Laravel的几个主要
目录 218
子任务13.2 Laravel中的视图和路由 219
【任务提出】 219
【任务实施】 219
13.2.1 创建视图 219
13.2.2 创建路由 220
【知识储备】 221
子任务13.3 Laravel中的控制器和
验证码 222
【任务提出】 222
【任务实施】 222
13.3.1 制作前端登录页面 222

13.3.2 制作后端登录页面 223
13.3.3 安装和使用验证码包 225
【任务小结】 227
【巩固练习】 227

任务14
Laravel中的表单验证、数据库操作 230
情景导入 230
职业能力目标及素养目标 230
子任务14.1 Laravel中表单数据的后端验证
方法 230
【任务提出】 230
【任务实施】 230
14.1.1 理解Laravel中的验证类
Validator 230
14.1.2 使用Laravel验证类Validator
完成表单数据验证 231
14.1.3 在前端页面中显示验证错误提示
信息 232
子任务14.2 Laravel中数据库的使用(用户
登录) 235
【任务提出】 235
【任务实施】 235
14.2.1 使用Laravel中的模型 235
14.2.2 在Laravel中完成用户登录 236
子任务14.3 后台管理页面的制作 239
【任务提出】 239
【任务实施】 239
14.3.1 使用Laravel的中间件 239
14.3.2 输出后台管理页面数据 240
子任务14.4 使用Laravel实现用户注册 242
【任务提出】 242
【任务实施】 242
【任务小结】 245
【巩固练习】 245


读者评论

赶紧抢沙发哦!

我要评论

作者介绍

牟奇春,成都职业技术学院教授,曾担任世界技能大赛(中国选拔赛)网站设计项目专家组成员和裁判,穗港澳蓉青年技能大赛专家组成员和裁判,从事职业教育20余年,主讲动态网站开发、uniapp混合开发等课程。在教学之余,和企业始终保持密切的合作关系,开发多个商业项目。近年来,发表中文核心期刊论文2篇,申请软件著作权12项,实用新型专利授权10项。主持省厅级重点项目2个,横向课题到帐经费10余万元,指导学生参加技能大赛获国家级奖项3项,省级奖项30余项。主持的课程“动态网站开发”,获批四川省精品在线开放课程,己完整开设8期,选课人数3万余人。

推荐用户

相关图书

人邮微信
本地服务
人邮微信
教师服务
二维码
读者服务
读者服务
返回顶部
返回顶部