基于B/S架构的视频点播网站设计系统
更新时间:2020-01-28 22:15:27 编辑:管理员 浏览:10754
目录
一、需求剖析...5
1、标题请求...5
2、开发背景...5
3、可行性剖析...5
4、系统运转环境...6
二、总体设计...6
1、用户功用模块...6
2、效劳器局部...6
3、系统功用构造...7
4、数据库设计...7
三、功用设计...9
1、系统流程图...9
2、主要功用的完成...10
(1)播放系统首页的设计...10
(2)完成视频在线播放...11
(3)用户身份考证...13
(4)管理员功用:完成节目的上传、删除...16
四、调试与测试...20
五、测试结果...24
六、课程设计过程的总结、心得领会...24
一、需求剖析
1、标题请求
本设计请求完成一个视频点播系统。采用B/S架构。应该具有易用、美观的图形界面。
客户端功用请求:
(1)可以完成视频在线播放;
(2)完成节目查询,记载用户播放记载。
(3)能完成视频节目评价系统。
效劳器端:
(1)对节目分类停止管理
(2) 能完成视频节目的上传,修正和删除。
(3) 能完成用户身份的考证。
(4)完成节目的评价计分系统。
2、开发背景
视频点播VOD(Video on Demand)呈现的最初动力是人们对播送电视的更高需求。在传统的电视中,观众完整是被动的。节目提供者播放什么节目,观众就只能观看什么节目,节目的播放时间也是无法依照观众的意愿改动的。虽然电视台能够提供很多的节目,但要想完好地收看到一个本人称心的节目,关于许多人来讲也是不太容易做到的,由于在快节拍的现代生活中,许多人不可能为了看某一个电视节目而预先布置本人的时间,一些偶然的突发事情还会打乱我们的预期方案。我设计的这款系统是为了满足人们的需求,随时能够观看本人想看的影视作品,抛却之前的繁琐。
3、可行性剖析
①技术可行性剖析:本系统采用AdobeDreamweaver CS6来停止系统构建,采用B/S架构,应用PHP+MySQL+Apache搭建效劳器环境,能够很便当停止动态网站的开发。经过学习HTML5+CSS3停止网页设计和界面优化,然后运用PHP来制造这个网站的动态内容,应用MySQL数据库停止后台数据管理,能够使得用户和系统停止更好的交互,而且易于管理,具有良好的技术可行性。
②经济可行性剖析:开发此软件是个人独立设计,不需求大量的经费,而且能够俭省许多费用,同时也可进步个人的实践入手才能,具有经济可行性。
③法律可行性剖析:本系统模块等都由本人独立开发,不会呈现进犯版权等问题。网站出于科研学习目的,运营合法,不存在不良资源,因而具有法律可行性。
④市场可行性剖析:本网站全面免费,后期管理和维护便当,能够推行运用,具有市场可行性。
4、系统运转环境
系统开发环境:PHP+MYSQL+APACHE+Hbuilder
系统开发言语:HTML5+CSS3+PHP+PHPMYADMIN
数据库:MYSQL 5.5.20
WEB效劳器:Apache2.2.21
二、总体设计
本次视频点播系统基于B/S架构,所以总体设计能够分为阅读器、客户端局部和效劳器端局部。从功用上分类来说,用户功用模块和管理员功用模块。
1、用户功用模块
用户注册,用户登录,阅读视频,搜索视频,观看视频和视频评论,查看播放记载;
2、效劳器局部
视频管理,视频分类管理,视频节目上传,修正,删除,用户身份考证,节目的评价计分。
3、系统功用构造
系统功用构造图
4、数据库设计
本次数据库名为video,数据库下面创立了四个表,构造如下图:
四个表的构造如下:
用户信息表(Users)
字段称号
数据类型
阐明
uid
自动编号
ID标识符,自动增加
UserName
文本
用户名
password
文本
密码
regtime
日期/时间
注册时间
sex
文本
性别
Type
数字
用户类型(0为管理员)
Tele
文本
电话
Email
文本
E-mail
电影信息表(videos)
字段称号
数据类型
阐明
fid
自动编号
ID标识符,自动增加
filepath
文本
途径
filename
文本
影片称号
director
文本
导演
player
文本
主演
class
文本
类型
filecover
文本
电影封面
file-gut
文本
视频简介
join-time
日期/时间
参加日期
视频评论表(video_comment)
字段称号
数据类型
阐明
uid
文本
用户id
fid
文本
视频id
username
文本
用户称号
filename
文本
电影名
comment_time
时间
评论时间
comment
文本
评论内容
观看电影记载表(video_history)
字段称号
数据类型
阐明
hid
文本
观看id(自动增长)
username
文本
用户称号
filename
文本
电影名
date
时间
评论时间
三、功用设计
1、系统流程图
系统功用完成局部主要是对整个系统的完成停止描绘。其中包括系统运转环境,系统后台,前台的功用完成等。系统流程图如下:
2、主要功用的完成
(1)播放系统首页的设计
本功用主要是应用HTML5以及CSS5对网页停止设计及规划,这个过程较为简单,效果图如下:
显眼局部应用JavaScript技术对其完成图片轮播办法。
(2)完成视频在线播放
本功用完成较为就简单,经过HTML5+CSS5给播放网页做简单的规划之后,在网页中参加
但是做到这里还不是就能够完成点击首页的电影图片就能够跳转到播放界面然后播放相对应的视频。详细操作有:
①在首页(index.php)的图片添加目的地址:
<divclass="am-gallery-item">
<ahref="video_play.php?action=<?phpecho $data[4][2];?>">
<imgsrc="Temp-images/picture2.jpg" alt="哈利波特"/>
<h3class="am-gallery-title">哈利波特带你走进魔法世界!
<divclass="am-gallery-desc">2375-09-26
<divclass="contents">
<videowidth="810"height="420"controls="controls">
<sourcesrc="<?phpecho $_GET['action'];?>" type="video/mp4"/>
这样就能够完成两个页面之间的衔接了,但是两个php页面都还是衔接至数据库获取数据的。衔接至数据库的代码如下:
<?php
header("Content-type:text/html; charset=utf-8");
session_start();
mysql_connect("localhost","root", "") or
die("Could notconnect: ". mysql_error());
mysql_select_db("video");
$string=$_GET['action'];
$str ="SELECT fid,filename,filepath,director,player,class,filecover,file_gut,join_timeFROM videos WHERE filepath= '$string'";
$result =mysql_query($str);//执行SQL语句
while($row = mysql_fetch_array($result,MYSQL_NUM)) {
$data[]=$row;
}
?>
(3)用户身份考证
经过点击主页的注册、登录或者管理员登录界面按钮,跳转到登录注册界面,由于上述三种状况差不多,这里以考证登录为例,登录注册页面(login.html)如下:
页面由HTML5+CSS5编写规划,中心局部是登录注册信息框中的内容,两个输入信息框和两个按钮,这都是在一个表单中,经过点击登录按钮,将表单数据提交至指定的php处置,代码如下:
<formid="login"action="login.php"name="forms"method="post">
用户登录注册
<divid="inputs">
<inputid="username"type="text"placeholder="Username"name="username"autofocus required= />
<inputid="password"type="password"placeholder="Password"name="password"required/>
<divid="actions">
<inputtype="submit"id="submit1"value="登录"name="login"/>
<inputtype="submit"id="submit2"value="我要注册"name="register"/>
这里讲表单数据提交至login.php来处置,php完成的是衔接至数据库,在数据库中的用户信息表(user表)停止匹配搜索,假如有匹配到的用户信息,则准许登录。假如没有则提示登录失败,重新尝试!
Login.php代码如下:
<?php
header("Content-type:text/html; charset=utf-8");
$username=$_POST['username'];
$password=$_POST['password'];
$login=$_POST['login'];
//$register=$_POST['register'];
session_start();
$_SESSION['username']=$username;
$_SESSION['password']=$password;
//包含数据库衔接文件
$connection=mysql_connect("localhost","root","");
//echo "$connection";
mysql_select_db("video",$connection);
//检测用户名及密码能否正确
$check_query =mysql_query("selectuid from users where username='$username' and password='$password' limit 1");
if($result= mysql_fetch_array($check_query)){
$_SESSION['username'] =$username;
$_SESSION['uid'] =$result['uid'];
echo "";
echo" ";
exit;
} else{
exit('登录失败!点击此处 返回 重试');
}
?>
(4)管理员功用:完成节目的上传、删除
经过主页管理员登录之后进入管理员页面(server.php),效果图如下:
这里主要引见视频的上传,另外的视频删除和视频资源修正在原理上是类似的,这里就不赘述。资源上传的页面如下:
完成代码如下:
<divclass="upload-filecover"style="margin:100px00350px;">
上传封面
<formaction="upload_filecover.php"method="post"enctype="multipart/form-data">
<inputtype="file"name="file"value="选择封面"/>
<inputtype="submit"value="上传封面"/>
<divclass="upload-video"style="margin:100px00350px;;">
上传视频
<formaction="upload_video.php"method="post"enctype="multipart/form-data">
<inputname="myfile"value="选择视频"type="file"/>
<inputtype="submit"value="上传视频"/>
同样是经过表单传输数据,应用upload_filecover.php和upload_video.php来完成将选中的视频封面和视频资源挪动到效劳器指定的文件夹中,并且经过衔接数据库执行insert SQL语句向数据库中插入视频资源的信息,从而能够在前台搜索到该视频的信息,数据库将该视频的相关信息(如视频封面途径和视频资源途径)传给播放页面,完成播放视频。详细完成代码如下:
<?php
header("content-type:text/html;charset=utf-8");
//存储能够传送效劳器的文件类型
$allowExts=array("rmbv","mp4","xlv");
//取出文件名用explode()和 从.处 分断字符串
$filepath="video/".$_FILES["myfile"]["name"];
$temp=explode(".",$_FILES["myfile"]["name"]);
print_r($temp);
//取出后缀名用end()里面是你的数组
$filename=reset($temp);
if($_FILES["myfile"]["type"]=="video/mp4")//判别文件类型能否契合$allowExts数组的格式
{//判别图片的大小不能够超越1M
if($_FILES["myfile"]["error"]){//error大于0时表示错误信息,=0表示没有任何的错误
echo"error:".$_FILES["myfile"]["error"];
}else{
//判别同级目录中(./的意义同级目录)能否存在upload的文件夹
if(!is_dir("./upload/")){
mkdir("./upload/");
}
//判别在我们upload文件夹中能否有文件,假如有,中止上传,没有继续上传
if(file_exists("./upload/".$_FILES["myfile"]["name"])){
echo"";
}else{
move_uploaded_file($_FILES["myfile"]["tmp_name"],"./video/".$_FILES["myfile"]["name"]);//将上传的文件从暂时文件途径挪动到指定途径
echo"";
}
}
}
$connection=mysql_connect("localhost","root", "");
//ordie("Could not connect: " . mysql_error());
mysql_select_db("video",$connection);
$str ="UPDATE videos SET filepath='$filepath' where filename='$filename'";
$result =mysql_query($str);
echo$result;
if($result){
echo "";
}else{
echo"";
}
mysql_close($connection);
echo" ";
?>
本次课程设计任务请求中还有很多的任务请求,归根结底,其他的功用请求和上述功用中的某一个是类似的,所以这里没有逐个写下了。举个例子,完成节目查询,记载用户的播放视频记载,效劳器端对视频停止分类管理,这些根本上都是经过PHP衔接至数据库,执行查询SQL语句,然后将结果返回,功用相近,较为简单。
四、调试与测试
调试与测试局部,我将以截图的方式展现本次课程设计的大约过程:
首页:
登录:
登录胜利后:
右上角显现你已登录。点击注销,退回到未登录的首页。
点击用户中心查看本人的观看视频记载:
点击视频封面抵达视频观看界面,本页面能够观看视频,看到视频简介,看到他人的评论,并且能够本人发表评论,评论发表之后,本人的评论写入数据库:
评论胜利:
数据库添加了一条新评论:
管理员功用:首先在阅读器端搜索bbb视频,发现没有搜索到。
这时经过管理员视频上传功用将bbb视频上传上去:
登录进入管理员中心:
将bbb视频对应的封面和视频资源都上传上去:
上传胜利之后提示你:
查看数据库videos表中能否多了一条video记载:
回到阅读器端,搜索bbb,找到对应的视频:
点击图片跳转到播放界面并能够播放:
五、测试结果
经过上面一步的调试与测试,本次课程设计根本上完成了请求的一切功用,测试无误!
六、课程设计过程的总结、心得领会
本次课程设计大约有一个多月,经过一个多月的学习,我真的学会了很多很多,从最初大胆的选这个课设标题,一点都不懂的状况下,在同窗的晓得协助下,渐渐的学习HTML,PHP,JavaScript,根本上搞懂了他们都是用来干嘛的,并且控制了他们的根本应用,完成了本次课设。能够说真的来之不易,自我觉得还是较为称心的,固然课程设计中存在很多的缺点,但是大致上是能够看得。从这次课程设计中,我领会到一点,没有什么问题是本人不能处理的,只需我们肯努力,肯研究,肯定能够处理搅扰我们的 ,而且,经过努力处理问题的那种觉得是特别爽的。总结一下,今后我将继续学习相关学问,并且运用本次收获的东西到其他的方面,感激教师和同窗的协助!