PHP音乐网.docx
《PHP音乐网.docx》由会员分享,可在线阅读,更多相关《PHP音乐网.docx(38页珍藏版)》请在冰豆网上搜索。
PHP音乐网
《毕业实习》
课题:
PHP音乐网
姓名:
学号:
班级:
指导老师:
计算机与信息学院
第一章关键技术介绍3
1.1关于PHP3
1.2关于MYSQL4
1.3关于THINKPHP4
1.4关于Apache5
第二章系统分析6
2.1系统功能概述6
2.1.1系统前台功能概述6
2.1.2系统后台功能概述6
2.2可行性分析6
2.2.1经济可行性6
2.2.2技术可行性6
2.2.3管理可行性7
2.2.4可行性结论7
2.3需求分析7
第三章概要设计8
3.1系统功能模块图8
3.2系统处理流程图9
3.2.1系统操作流程图9
3.2.2数据增加流程图10
3.2.3数据修改流程图10
3.2.4数据删除流程图11
3.3系统总体结构图11
3.4数据库概要设计12
3.4.1数据字典12
3.4.2E-R图15
3.4.2数据表设计17
第四章系统详细设计18
4.1系统模块设计18
4.1.1系统前台用户模块18
4.1.2系统后台管理员模块19
5.1前台模块实现19
5.1.1首页展示模块实现20
5.1.2歌曲展示模块实现21
5.1.3歌手展示模块实现22
5.1.4专辑展示模块实现23
5.1.5歌手信息展示模块实现24
5.1.6专辑信息展示模块实现25
5.1.7歌曲下载模块实现26
5.1.8歌曲播放模块实现27
5.2后台模块实现28
5.2.1后台登录模块实现28
5.2.2后台用户管理模块实现28
5.2.3后台音乐管理模块实现29
摘要:
随着网络技术的发展,人们在利用网络学习的同时,也在享受着网络带来的各种附带产品所产生的效应,如网络游戏,网络歌曲。
音乐网站正是在这样的需求前提下应运而生。
给人们的日常生活带来了极大的乐趣,让人们在繁忙疲惫的工作之后可以进行休闲。
本系统由两大模块组成,前台展示模块和后台管理模块。
前台模块,主要是提供音乐动态展示,可以在线视听,在线下载。
而后台主要是对该网站的音乐信息进行及时的更新和网站的相关管理。
第一章关键技术介绍
1.1关于PHP
PHP(HypertextPreprocessor——超文本预处理器)是一种HTML内嵌式的脚本语言。
PHP的语法大部分兼容了C、JAVA、Perl,并增加了PHP特有的语法结构,可以比CGI或者Perl更快速的执行动态网页,只需要很少的编程知识就能建立一个交互的WEB站点。
它可以用于管理动态内容、支持数据库、处理会话跟踪,甚至构建整个电子商务站点。
它还支持许多流行的数据库,包括MySQL、PostgreSQL、Oracle、Sybase、Informix和MicrosoftSQLServer。
PHP具有如下的优点:
1.学习简单:
只需要了解一些基本的语法和语言特设,就可以开始使用PHP。
数据库连接方便:
PHP可以编译成具有与许多数据库相连接的函数。
PHP与MYSQL是现在绝佳的组合。
可以编写外围的函数间接存取数据库。
这样当更换使用的数据库时,可以轻松的更改编码以适应这样的变化。
PHPLIB就是最常用的可以提供一般事务需要的一系列基库。
2.扩展性强:
PHP已经进入了一个高速发展的时期,具有良好的扩展附加功能。
可以进行面向对象编程:
PHP提供了类和对象,基于WEB的编程工作非常需要。
总之,PHP技术具有免费、跨平台、可加密、开发效率高等优点,在编写小型的网站系统时较之ASP、JSP等技术有一定优势。
1.2关于MYSQL
MYSQL是基于SQL的,完全网络化的跨平台关系型数据库系统,同时是具有客户机/服务器体系结构的分布式数据库管理系统。
它具有功能强,使用简便,管理方便,运行速度快,安全可靠性高等优点。
支持多种语言编写访问数据库的程序。
MySQL是一个快速、多线程、多用户的小型关系型数据库管理系统。
它支持正规的SQL查询语言和采用多种数据类型,能对数据进行各种详细的查询等。
MySQL提供了一全套的数据库创建和访问机制,通过很直观的方式就可以创建、访问、修改数据库的表和项,并且能建立它们之间的各种数据关系。
MySQL系列从90年代就发展起来,经过了多年的反展,它已经成为非常成熟的技术,面向中小型企业级应用。
MySQL数据库的特点是数据库文件小而简单,不需要运行或者启动数据库服务5进程就可以使用。
通常MySQL数据库文件可以随网页文件一起方便地放在网站的目录中,正是由于这些特点,MySQL数据库通常被用来作为网站开发的数据库支持技术。
对MySQL数据库的管理采用图形化管理工具phpMyAdmin。
phpMyAdmin是一个用PHP编写的、基于Web的、跨平台的MySQL管理程序,支持简体中文,使用Web浏览器作为管理界面。
通过phpMyAdmin可以进行绝大部分的MySQL操作,包括对数据库级操作,表级操作,以及数据管理等。
1.3关于THINKPHP
ThinkPHP是一个开源的php框架,早期的思想架构来源于Struts,后来经过不断改进和完善,同时也借鉴了国外很多优秀的框架和模式,使用面向对象的开发结构和MVC模式,融合了Struts的Action和Dao思想和JSP的TagLib(标签库)、RoR的ORM映射和ActiveRecord模式,封装了CURD和一些常用操作,单一入口模式等,在模版引擎、缓存机制、认证机制和扩展性方面均有独特的表现。
∙ThinkPHP.php:
框架的公共入口文件
∙Common:
包含框架的一些公共文件、系统定义、系统函数和惯例配置等
∙Lang:
系统语言文件目录
∙Lib:
系统基类库目录
∙Tpl:
系统模板目录
∙Mode:
框架模式扩展目录
∙Vendor:
第三方类库目录
1.4关于Apache
Apache是最流行的Web服务器端软件之一。
快速、可靠、可通过简单的API扩展,Perl/Python解释器可被编译到服务器中,完全免费,完全源代码开放。
Apache服务器拥有以下特性:
1支持最新的HTTP/1.1通信协议拥有简单而强有力的基于文件的配置过程;
2支持通用网关接口;
3支持基于IP和基于域名的虚拟主机;
4支持多种方式的HTTP认证;
5集成Perl处理模块;
6集成代理服务器模块;
7支持实时监视服务器状态和定制服务器日志;
8支持服务器端包含指(SSI);
9支持安全Socket层(SSL);
10提供用户会话过程的跟踪;
11支持FastCGI;通过第三方模块可以支持JavaServlets。
第二章系统分析
2.1系统功能概述
系统主要完成两大功能:
面向非会员和会员的前台功能和面向系统管理员的后台功能。
非会员即没有在本网站进行注册的用户,可以进行歌曲的浏览跟点播。
会员即在本网站进行注册过的用户,在登录之后可以进行歌曲的下载、上传、点播、分享。
系统管理员即数据库管理员,可以在后台进行数据库的管理。
2.1.1系统前台功能概述
在前台,系统主要提供以下服务:
(1)非会员浏览和点播歌曲。
(2)会员浏览和点播歌曲外还可以下载和上传自己喜欢的歌曲。
(3)会员可以管理自己的信息和自己上传歌曲的信息。
2.1.2系统后台功能概述
在后台,管理员可进行如下操作:
(1)浏览和点播歌曲。
(2)管理歌曲信息,包括上传、下载、修改和删除歌曲。
(3)管理会员信息,包括增加、修改和删除会员信息。
2.2可行性分析
2.2.1经济可行性
本系统开发所用的软件都是免费的,极大地节省了资金。
根据对网络上各音乐网站的调查分析表明,现在随着人民生活水平的不断提高,家庭电脑的普及使得越来越多的人选择利用网络这一媒体来与世界交流,很多人有能力并且也愿意以网上娱乐的方式消费。
所以在这样的背景下设计开发一个在线音乐点播系统在经济上是可行的。
2.2.2技术可行性
技术可行性要考虑现有的技术条件是否能够顺利完成开发工作,软硬件配置是否满足开发的需求等。
本系统用的是PHP开发语言,调试相对简单,当前的计算机硬件配置也完全能满足开发的需求,因此在技术上是绝对可行的。
软件方面:
由于目前单机模式相对发展成熟,故软件的开发平台成熟可行,它们速度快、容量大、可靠性能高、价格低,完全能满足系统的需求。
2.2.3管理可行性
本系统界面友好,操作简便,系统后台也为管理网站提供了便利,主要是管理音乐相关和用户相关的信息,故此管理上也是可行的。
2.2.4可行性结论
由此分析本系统符合可行性的要求是可以开发运行的。
2.3需求分析
本音乐网站应该满足如下需求:
(1)允许访问者执行基本操作。
(2)允许访问者在网站上注册。
(3)注册用户登录后,可以对音乐、歌手和专辑进行在线评论
(4)管理人员可以维护用户细节和管理歌曲、歌手等信息。
系统功能包括普通用户功能、登录用户功能、管理员功能:
1.普通用户功能
(1)浏览网站上的专辑、歌手和歌曲信息。
(2)可以查询歌曲名等相关信息。
(3)可以在线试听歌曲。
(4)可以进行注册。
2.登录用户功能
(1)普通用户的所有功能。
(2)可以对专辑、歌手或歌曲发表评论。
3.管理员功能
(1)添加、删除、修改和查询歌曲信息。
(2)查看、删除、修改和用户信息。
(3)添加、删除、修改和查询管理员信息。
(4)查看和删除用户评论信息。
第三章概要设计
3.1系统功能模块图
图3.1-1系统功能模块图
3.2系统处理流程图
3.2.1系统操作流程图
图3.2.1-1系统操作流程图
3.2.2数据增加流程图
图3.2.2-1数据增加流程图
3.2.3数据修改流程图
图3.2.3-1数据修改流程图
3.2.4数据删除流程图
图3.2.4-1数据删除流程图
3.3系统总体结构图
系统前台总体结构图:
图3.1在线音乐点播系统前台功能结构图
网站后台总体结构图:
图3.2在线音乐点播系统后台功能结构图
3.4数据库概要设计
3.4.1数据字典
数据字典:
是一种用户可以访问的记录数据库和应用程序元数据的目录,数据字典中的名字都是一些属性与内容的抽象和概括,它们的特点是数据的“严密性”和“精确性”,数据字典有数据项、数据结构、数据流、数据存储、处理过程组成。
歌曲文件信息数据流表,用来表示上传歌曲的文件名以及歌曲发布者等信息:
数据流名称
任务信息
别名
无
简述
歌曲员文件的信息
来源
歌曲发布者
去向
加工,上传歌曲
数据流量
较多
组成
歌曲源文件
表3.4.1-1歌曲文件信息数据流表
歌曲信息数据流表,用来表示歌曲的编号、歌名、演唱者、上传者、上传时间、上传文件、简介、歌曲类型等信息:
数据流名称
任务信息
别名
无
简述
上传歌曲时所填写内容
来源
歌曲发布者
去向
加工3.1歌曲信息发布
数据流量
较多
组成
歌曲编号、歌名、演唱者、上传者、上传时间、上传文件、简介、歌曲类型
表3.4.1-2歌曲信息数据流表
歌曲编号数据流表,此表用来表示歌曲标号的取值范围:
数据项名称
歌曲编号
别名
Songinfo_ID
简述
任务的唯一标识
类型
Int
长度
8位
取值范围及含义
取值范围:
10000009-99999999
表3.4.1-3歌曲编号数据流表
建立音乐信息表数据库条目表:
数据存储名称
歌曲信息表
别名
Songinfo
简述
存储歌曲信息
组成
歌曲编号、歌名、演唱者、上传者、上传时间、点击次数,上传文件
组织方式
索引文件,以任务编号为主索引,任务名称为候选索引
查询要求
要求能够快速查询
表3.4.1-4音乐信息表数据库条目表
上传歌曲文件加工条目,用来表示上传歌曲的状态:
加工名称
上传歌曲文件
编号
2.1
激活条件
必须是会员或管理员
优先级
普通
输入
歌曲源文件
输出
歌曲上传成功
加工逻辑
1、用户信息审核;2、上传歌曲
表3.4.1-5上传歌曲文件加工条目
下载歌曲文件加工条目,用来表示下载歌曲的状态:
加工名称
下载歌曲文件
编号
2.2
激活条件
必须是会员或管理员
优先级
普通
输入
下载歌曲
输出
歌曲文件
加工逻辑
1、用户信息审核;2、下载歌曲
表3.4.1-6下载歌曲文件加工条目
删除歌曲文件加工条目,此表用来表示如何去删除自己音乐盒的音乐文件:
加工名称
删除歌曲文件
编号
2.3
激活条件
必须是会员或管理员
优先级
普通
输入
无
输出
无
加工逻辑
1、用户信息审核;2、删除歌曲
表3.4.1-7删除歌曲文件加工条目
歌曲信息发布条目,用来表示歌曲在发布之后文件信息的展示状态:
加工名称
歌曲信息发布
编号
3.1
激活条件
必须是会员或管理员
优先级
普通
输入
歌曲信息
输出
歌曲信息处理结果
加工逻辑
1、用户信息审核;2、发布歌曲信息
表3.4.1-8歌曲信息发布加工条目
修改歌曲信息加工条目,用来表示如何在后台修改歌曲文件的各个信息:
加工名称
修改歌曲信息
编号
3.2
激活条件
必须是会员或管理员
优先级
普通
输入
修改的歌曲信息
输出
歌曲信息修改处理结果
加工逻辑
1、用户信息审核;2、修改歌曲信息
表3.4.1-9修改歌曲信息加工条目
删除歌曲信息加工条目,用来表示如何在后台删除歌曲文件的各个信息:
加工名称
删除歌曲信息
编号
3.3
激活条件
必须是会员或管理员
优先级
普通
输入
无
输出
无
加工逻辑
1、用户信息审核;2、删除歌曲信息
表3.4.1-10删除歌曲信息加工条目
3.4.2E-R图
根据数据字典,得到系统数据库的E-R图模型
(1)实体:
用矩形表示,矩形框内写明实体名。
(2)属性:
用椭圆形表示,并用无向边与其相应实体连接起来。
(3)联系:
用菱形表示,菱形框内写明联系名,并用无向边与其有关实连接起来。
前台用户E-R图
图3.4.2-1前台E-R图
后台E-R图:
图3.4.2-2后台E-R图
3.4.2数据表设计
Music_users用户信息表
User_id
int
非空
主键
用户编号
User_name
Varchar(255)
非空
用户名
password
Varchar(255)
非空
用户密码
email
Varchar(255)
非空
用户邮箱(验证)
root
Int
(2)
非空
用户权限(管理员和普通用户)
Music_musics音乐信息表
music_id
int
非空
主键
音乐编号
Cata_id
int
非空
音乐类别
music_name
Varchar(255)
非空
音乐名称
Update_time
Varchar(255)
非空
上传时间
Music_url
Varchar(255)
非空
音乐地址
Music_img
Varchar(255)
非空
音乐缩略图
Is_recomment
Int
(2)
非空
是否推荐
Is_up
Int
(2)
非空
是否用户上传
Music_command音乐评论表
music_id
int
非空
主键
音乐编号
User_id
Varchar(255)
非空
用户编号
command_time
Varchar(255)
非空
评论时间
content
Int
(2)
非空
评论内容
Music_resave音乐收藏表
music_id
int
非空
主键
音乐编号
User_id
Varchar(255)
非空
用户编号
resave_time
Varchar(255)
非空
收藏时间
Music_cata音乐信息表
cata_id
int
非空
主键
类别编号
Cata_name
Varchar(255)
非空
类别名称
第四章系统详细设计
4.1系统模块设计
4.1.1系统前台用户模块
在会员模块中,首先要判断是否是网站的会员。
如果是普通的用户,那他们的权限是有限的,只能浏览、搜索歌曲以及歌曲的试听,但要是会员的话,除了上述的功能还可以上传和下载歌曲,也可以管理自己上传的歌曲信息和个人信息。
会员模块的流程图。
图4.1会员模块流程图
4.1.2系统后台管理员模块
管理员模块的流程图。
图4.2管理员模块流程图
第5章系统实现
5.1前台模块实现
5.1.1首页展示模块实现
首页展示模块
视图(View)
控制器(Control)
模型(Model)
index.html
indexAction.class.php
listModel.clas.php
singerModel.class.php
zhuanjiModel.class.php
实现代码
publicfunctionindex()
{
$zhuanji=newModel();
$data=$zhuanji->table('music_singers,music_listl')->where('s.singer_id=l.singer_id')->field('s.*,l.music_name,l.url,l.music_id')->order('l.music_id')->select();
$this->assign("data",$data);
$zhuanj=newModel();
$item=$zhuanj->table('music_zhuanjiz,music_singers')->where('s.singer_id=z.singer_id')->field('z.*,s.singer_name')->order('z.zhuanji_id')->select();
$this->assign("item",$item);
$singer=newsingerModel();
$singdata=$singer->select();
$this->assign("singdata",$singdata);
$sitename="首页";
$this->assign("sitename",$sitename);
$this->display();
}
图5.1.1网站首页
5.1.2歌曲展示模块实现
歌曲展示模块
视图(View)
控制器(Control)
模型(Model)
music.html
indexAction.class.php
listModel.clas.php
singerModel.class.php
zhuanjiModel.class.php
实现代码:
publicfunctionmusic(){
$zhuanji=newModel();
$data=$zhuanji->table('music_singers,music_listl')->where('s.singer_id=l.singer_id')->field('s.*,l.music_name,l.url,l.music_id')->order('l.music_id')->select();
$zhuanj=newModel();
$item=$zhuanj->table('music_zhuanjiz,music_singers')->where('s.singer_id=z.singer_id')->field('z.*,s.singer_name')->order('z.zhuanji_id')->select();
$this->assign("item",$item);
$this->assign("data",$data);
$sitename="音乐";
$this->assign("sitename",$sitename);
$this->display();
}
图5.1.2歌曲展示
5.1.3歌手展示模块实现
歌手展示模块
视图(View)
控制器(Control)
模型(Model)
singer.html
indexAction.class.php
listModel.clas.php
singerModel.class.php
zhuanjiModel.class.php
实现代码:
publicfunctionsinger(){
$singer=newsingerModel();
$data=$singer->select();
for($i=A,$j=1;$i<=Z,$j<=26;$i++,$j++)
{
$item[$j]=$i;
}
$this->assign("data",$data);
$this->assign("item",$item);
$sitename="歌手";
$this->assign("sitename",$sitename);
$this->display();
}
图5.1.3歌手列表
5.1.4专辑展示模块实现
专辑展示模块
视图(View)
控制器(Control)
模型(Model)
zhuanji.html
indexAction.class.php
listModel.clas.php
singerModel.class.php
zhuanjiModel.class.php
实现代码:
publicfunctionzhuanji(){
$id=$_GET['zhuanji_id'];
if($id=="")
{
$zjinfo=newzhuanjiModel();
$zj=$z