PHP课程设计.docx

上传人:b****2 文档编号:147172 上传时间:2023-04-28 格式:DOCX 页数:31 大小:369.39KB
下载 相关 举报
PHP课程设计.docx_第1页
第1页 / 共31页
PHP课程设计.docx_第2页
第2页 / 共31页
PHP课程设计.docx_第3页
第3页 / 共31页
PHP课程设计.docx_第4页
第4页 / 共31页
PHP课程设计.docx_第5页
第5页 / 共31页
PHP课程设计.docx_第6页
第6页 / 共31页
PHP课程设计.docx_第7页
第7页 / 共31页
PHP课程设计.docx_第8页
第8页 / 共31页
PHP课程设计.docx_第9页
第9页 / 共31页
PHP课程设计.docx_第10页
第10页 / 共31页
PHP课程设计.docx_第11页
第11页 / 共31页
PHP课程设计.docx_第12页
第12页 / 共31页
PHP课程设计.docx_第13页
第13页 / 共31页
PHP课程设计.docx_第14页
第14页 / 共31页
PHP课程设计.docx_第15页
第15页 / 共31页
PHP课程设计.docx_第16页
第16页 / 共31页
PHP课程设计.docx_第17页
第17页 / 共31页
PHP课程设计.docx_第18页
第18页 / 共31页
PHP课程设计.docx_第19页
第19页 / 共31页
PHP课程设计.docx_第20页
第20页 / 共31页
亲,该文档总共31页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

PHP课程设计.docx

《PHP课程设计.docx》由会员分享,可在线阅读,更多相关《PHP课程设计.docx(31页珍藏版)》请在冰点文库上搜索。

PHP课程设计.docx

PHP课程设计

 

PHP项目设计报告

 

学  院:

信息工程学院

组  长:

赖恒财(计算机132,04号)

成员:

董晓唐(计算机132,17号)

谢泽民(计算机132,21号)

指导老师

ASIM外教

完成时间:

2016-05-22

 

第一章需求分析

功能性需求

BBS也称为论坛,是bulletinBoardSystem的简称,意即电子公告板,是一种在Internet上常见的用于信息服务的Web系统。

它主要给浏览者提供相互沟通的平台。

BBS信息量大,形式自由,在论坛中大家可以发布信息,进行讨论、聊天等,是用户间交流的优秀平台。

开发BBS论坛系统的目的是提供一个供用户交流的平台,为广大用户提供交流经验、探讨问题的社区。

因此,BBS论坛系统最基本的功能首先是发表主题,其次是其他人员根据主题发表自己的看法。

此外,为了记录主题的发表者和主题的加复者信息民,系统还需要提供用户注册和登录的功能。

只有注册的用户登录后才能够发表和回复主题,浏览者(游客)只能浏览主题信息。

根据用户的需求及以上的分析,BBS论坛需要具备前台功能和后台功能。

BBS系统的作用在于提供给用户彼此交流的空间,这种交流的方式即使浏览文章和发表文章。

因此,对于文章的管理是BBS系统的一个核心功能。

发表文章的权力只能给予特定的人群,否则容易失去秩序,基于同样地考虑,修改文章的权力也只能提供给特定的人群。

因此,用户的划分应该成为BBS系统的一个核心思想,系统将用户划分为普通用户、管理员2类,他们的权限不同,各司其职,其中管理员拥有最高的权力,可以对用户、文章、论坛3大对象进行增加、删除及修改操作。

(1)系统前台功能:

前台模块提供给所有用户使用,不论是论坛的注册用户,还是普通的浏览者,都可以进入其中。

区别在于随着用户的等级不同,所允许使用的功能也有所不同。

显示各论坛类别及版面、查看版面下所有根帖、查看精华帖子、查看自己发表的帖子、搜索帖子、查看根帖内容、用户注册、用户登录、发表帖子、回复帖子

(2)系统后台功能:

进入后台、论坛类别管理、版面管理、用户管理、用户注册

.非功能性需求

(1)平台限制:

基于Windows10,不需要安装其他软件。

(2)操作方式:

全部操作都可以基于浏览器进行。

第二章总体设计

系统目标

对于典型的数据库管理系统,尤其是对像论坛这样的数据流量特别大的网络管理系统,必须要满足使用方便、操作灵活等设计需求。

本系统在设计时应满足以下几个目标:

1.采用人机对话的操作方式,界面设计美观友好,信息查看灵活、方便、快捷、准确,数据存储安全可靠。

2.全面展示系统内所有帖子,方便直接查看。

3.为用户提供一个方便、快捷的主题信息查看功能。

4.实现在线发表帖子。

5.提供登录模块,主要用于发表帖子时留下发表者的信息,和对发表的帖子进行管理。

6.用户随时都可以查看自己发表的帖子。

7.对用户输入的数据,系统进行严格的数据检验,尽可能排除人为的错误。

8.系统最大限度地实现了易维护性和易操作性。

9.系统运行稳定安全可靠。

系统功能结构

用户访问论坛首页面后,可进行查看版面下根贴信息、查看自己发表的帖子、查看精华帖子、查看根贴信息、用户注册等功能。

用户在此BBS论坛中通过注册成为该网站的真正用户并成功登录系统后,可进行发表帖子、回复帖子、查看自己发表的帖子,删除自己发表的帖子,以及删除自己发表帖子下回复等操作。

BBSt论坛系统功能结构图如图下图所示。

图2-1系统功能结构图

系统功能模块

1.用户注册

在登录页面单击“注册“链接即可进入用户注册页面,此页面提供填写用户注册信息的表单,注册信息包括用户名、密码、确认密码,性别,爱好等等,其中有些信息是必须填的,有些是可以选填的。

用户填写完表中信息后,单击确认按钮,如果通过验证,即可成为BBS系统注册用户,此时用户在前台登录页面中登录进去之后,即可使用前台的全部功能。

2.用户登陆

用户进入论坛首页,即可点击登录按钮,进入用户登录页面,此页面提供用于填写用户名与密码的表单,页面中有一个【登录】按钮和【注册】按钮,分别提供给3中身份的用户使用:

对于已经在论坛注册的用户,在页面输入用户名及密码后,单击登录按钮,如果用户名和密码通过验证,则进入论坛,可以使用前台的全部功能。

对于游客,单击“游客”链接即可进入论坛,游客可以浏览其他用户发表的文章,但不允许在论坛中发表文章。

对于想注册的用户,单击“注册”链接即可进入注册页面,在填写完相关信息后,即成为BBS系统的用户,拥有了普通用户的所有权限。

3.帖子管理

管理员可以对所有帖子进行转移,置顶,删除,加精等操作,版主可以转移本版块帖子,也可以对本板块帖子进行置顶,删除,加精等操作。

4.帖子发表

注册用户进入某一论坛之后,可以单击主题列表页面上的“快速留言“链接,以使用发表文章的功能,系统将转至发表文章页面,其中填写的内容包括文章的标题和内容。

5.帖子回复

在某一话题的帖子列表页面中,注册用户可以单击右上角的“回复主题“链接,发表对该主题的回复内容。

6.帖子浏览

注册用户可以任意浏览权限内的帖子,未注册用户只能浏览,不能回复。

系统各模块流程

1.用户注册

填写个人信息——信息检验——保存用户信息

图2-2用户注册流程图

2.用户登陆

输入用户名和密码——信息验证---基于角色授权

图2-3用户登录图

3.帖子发表

注册用户——选择版块发表主题——主题持久化

图2-4帖子发表图

5.帖子回复

用户——针对主题发表回复——回复持久化

6.帖子管理

持有管理员或版主权限——转移,置顶,删除等操作

系统开发环境

开发环境

在开发此论坛的时候,需要具备下面的软件环境:

操作系统:

Windows10

Web服务器:

Apache

PHP:

Version数据库:

MysqlVerDistribforWin64(x86_64)

浏览器:

IE10+

分辨率:

最佳效果为1024×768像素

开发工具:

Hbuilder,免费开源的移动开发工具

开发框架:

ThinkPHP系统平台体系结构的选择

在应用开发领域中,目前系统平台的体系结构主要有两种,即C/S(Client/Server)结构和B/S(Brower/Server)结构。

C/S结构,即大家熟知的客户机和服务器结构。

它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统的通讯开销。

B/S结构,即浏览器和服务器结构。

它是一次性到位的开发,能实现不同的人员,从不同的地点,以不同的接入方式(比如LAN,WAN等)访问和操作共同的数据库;它能有效地保护数据平台和管理访问权限,服务器数据库也很安全。

特别是在JAVA这样的跨平台语言出现之后,B/S架构管理软件更是方便、快捷、高效。

传统的C/S体系结构虽然采用的是开放模式,但这只是系统开发一级的开放性,在特定的应用中无论是Client端还是Server端都还需要特定的软件支持。

由于没能提供用户真正期望的开放环境,C/S结构的软件需要针对不同的操作系统系统开发不同版本的软件,加之产品的更新换代十分快,已经很难适应百台电脑以上局域网用户同时使用,而且代价高,效率低。

B/S结构,是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。

在这种结构下,用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现,用通用浏览器就实现了原来需要复杂专用软件才能实现的强大功能,并节约了开发成本,是一种全新的软件系统构造技术。

因此本系统采用了B/S结构。

PHP语言

PHP的特性包括:

PHP独特的语法混合了C、Java、Perl以及PHP自创新的语法。

PHP可以比CGI或者Perl更快速的执行动态网页——动态页面方面,与其他的编程语言相比,PHP是将程序嵌入到HTML文档中去执行,执行效率比完全生成htmL标记的CGI要高许多;PHP具有非常强大的功能,所有的CGI的功能PHP都能实现。

PHP支持几乎所有流行的数据库以及操作系统。

最重要的是PHP可以用C、C++进行程序的扩展!

PHP的优势:

开放源代码,所有的PHP源代码事实上都可以得到。

免费性,和其它技术相比,PHP本身免费且是开源代码。

快捷性,程序开发快,运行快,技术本身学习快。

嵌入于HTML:

因为PHP可以被嵌入于HTML语言,它相对于其他语言。

编辑简单,实用性强,更适合初学者。

跨平台性强,由于PHP是运行在服务器端的脚本,可以运行在UNIX、LINUX、WINDOWS、MacOS、Android等平台

效率高,PHP消耗相当少的系统资源。

图像处理,用PHP动态创建图像,PHP图像处理默认使用GD2。

且也可以配置为使用imagemagick进行图像处理。

面向对象,在php4,php5中,面向对象方面都有了很大的改进,php完全可以用来开发大型商业程序。

专业专注,PHP支持脚本语言为主,同为类C语言。

ThinkPHP

ThinkPHP是为了简化企业级应用开发和敏捷WEB应用开发而诞生的。

最早诞生于2006年初,2007年元旦正式更名为ThinkPHP,并且遵循Apache2开源协议发布。

ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。

并且拥有众多原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进。

ThinkPHP是一个快速、兼容而且简单的轻量级国产PHP开发框架,诞生于2006年初,原名FCS,2007年元旦正式更名为ThinkPHP,遵循Apache2开源协议发布,从Struts结构移植过来并做了改进和完善,同时也借鉴了国外很多优秀的框架和模式,使用面向对象的开发结构和MVC模式,融合了Struts的思想和TagLib(标签库)、RoR的ORM映射和ActiveRecord模式。

ThinkPHP可以支持windows/Unix/Linux等服务器环境,正式版需要以上版本支持,支持MySql、PgSQL、Sqlite以及PDO等多种数据库,ThinkPHP框架本身没有什么特别模块要求,具体的应用系统运行环境要求视开发所涉及的模块。

作为一个整体开发解决方案,ThinkPHP能够解决应用开发中的大多数需要,因为其自身包含了底层架构、兼容处理、基类库、数据库访问层、模板引擎、缓存机制、插件机制、角色认证、表单处理等常用的组件,并且对于跨版本、跨平台和跨数据库移植都比较方便。

并且每个组件都是精心设计和完善的,应用开发过程仅仅需要关注您的业务逻辑。

ThinkPHP的优势:

模型(M):

模型的定义由Model类来完成。

Model类位于项目目录下面的LibModel目录。

控制器(C):

应用控制器(核心控制器)和Action控制器都承担了控制器的角色,区别在于Action控制器完成业务过程,而应用控制器(App类)负责调度控制。

Action控制器位于项目目录下面的LibAction目录。

视图(V):

模板的实现是和框架无关的,做到了100%分离,可以独立预览和制作。

模板目录位于项目目录下面的Tpl目录。

MySQL数据库

MySQL数据库的优势:

1.使用C和C++编写,并使用了多种编译器进行测试,保证了源代码的可移植性。

2.支持AIX、FreeBSD、HP-UX、Linux、MacOS、NovellNetware、OpenBSD、OS/2Wrap、Solaris、Windows等多种操作系统。

3.为多种编程语言提供了API。

这些编程语言包括C、C++、Python、Java、Perl、PHP、Eiffel、Ruby,.NET和Tcl等。

4.支持多线程,充分利用CPU资源。

5.优化的SQL查询算法,有效地提高查询速度。

6.既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中。

7.提供多语言支持,常见的编码如中文的GB2312、BIG5,日文的Shift_JIS等都可以用作数据表名和数据列名。

8.提供TCP/IP、ODBC和JDBC等多种数据库连接途径。

9.提供用于管理、检查、优化数据库操作的管理工具。

10.支持大型的数据库。

可以处理拥有上千万条记录的大型数据库。

11.支持多种存储引擎。

12.MySQL是开源的,所以你不需要支付额外的费用。

13.MySQL使用标准的SQL数据语言形式。

14.MySQL对PHP有很好的支持,PHP是目前最流行的Web开发语言。

15.MySQL是可以定制的,采用了GPL协议,你可以修改源码来开发自己的MySQL系统。

16.在线DDL/更改功能,数据架构支持动态应用程序和开发人员灵活性([3]新增)

17.复制全局事务标识,可支持自我修复式集群([3]新增)

18.复制无崩溃从机,可提高可用性([3]新增)

19.复制多线程从机,可提高性能([3]新增)

 

第三章数据库设计

数据库分析

通过对实现Web端论坛的基本功能的内容和数据分析,设计如下面的数据项和数据结构。

20.用户信息,包括的数据项有:

用户编号,名字,性别,密码,邮箱,电话,注册时间等。

21.帖子信息,包括的数据项有:

帖子编号,帖子标题,帖子内容,帖子发表时间,发表帖子用户编号,帖子所属父帖编号(用于回复帖),帖子的回复数据。

数据库概念设计

根据上面设计规划出的实体,对各个实体具体的描述E-R图如下:

 

数据库逻辑设计

用户表

字段名

数据类型

长度

说明

描述

id

int

11

非空,主键

用户编号

username

varchar

50

用户名

password

varchar

50

密码

sex

varchar

2

男,女

性别

email

 

varchar

50

邮箱

add_time

timestamp

非空

注册时间

帖子表

字段名

数据类型

长度

说明

描述

id

int

11

非空,主键

帖子编号

pid

int

11

父帖编号

title

varchar

255

帖子标题

content

text

帖子内容

reply

int

11

回复数

user_id

int

11

非空,外键

用户编号

post_time

timestamp

非空

发表时间

 

数据库物理结构实现

根据以上的逻辑分析所得到表的关系,我们使用T-SQL语言设计得到数据库和数据表。

/*

NavicatMySQLDataTransfer

SourceServer:

localhost_3306

SourceServerVersion:

50623

SourceHost:

Database:

thinkphp

TargetServerType:

MYSQL

TargetServerVersion:

50623

FileEncoding:

65001

Date:

2016-01-2116:

05:

30

*/

SETFOREIGN_KEY_CHECKS=0;

------------------------------

--Tablestructureforbbs_article

------------------------------

DROPTABLEIFEXISTS`bbs_article`;

CREATETABLE`bbs_article`(

`id`int(10)unsignedNOTNULLAUTO_INCREMENT,

`title`varchar(255)COLLATEutf8_unicode_ciDEFAULTNULL,

`content`mediumtextCOLLATEutf8_unicode_ci,

`post_time`timestampNULLDEFAULTCURRENT_TIMESTAMP,

`user_id`int(11)DEFAULTNULL,

`pid`int(11)DEFAULT'0',

`replynum`int(11)DEFAULT'0',

PRIMARYKEY(`id`)

)ENGINE=InnoDBAUTO_INCREMENT=38DEFAULTCHARSET=utf8COLLATE=utf8_unicode_ci;

------------------------------

--Tablestructureforbbs_user

------------------------------

DROPTABLEIFEXISTS`bbs_user`;

CREATETABLE`bbs_user`(

`id`int(10)unsignedNOTNULLAUTO_INCREMENT,

`user_name`varchar(50)COLLATEutf8_unicode_ciDEFAULTNULL,

`password`varchar(255)COLLATEutf8_unicode_ciDEFAULTNULL,

`sex`varchar

(2)COLLATEutf8_unicode_ciDEFAULT`男`,

`email`varchar(50)COLLATEutf8_unicode_ciDEFAULTNULL,

`add_time`timestampNULLDEFAULTCURRENT_TIMESTAMPONUPDATECURRENT_TIMESTAMP,

PRIMARYKEY(`id`)

)ENGINE=InnoDBAUTO_INCREMENT=6DEFAULTCHARSET=utf8COLLATE=utf8_unicode_ci;

 

第四章编程实现

首页界面设计与实现

首页界面设计

本系统中所有页面都采用了一种页面框架,该页面框架采用垂直分栏结构,分为4个区域:

页头、菜单栏、内容显示区和页尾。

网站前台首页面的运行结果如图所示。

 

实际前台页面在ThinkPHP开发中是一个静态的模板,然后由Smarty视图引擎,实现前台静态页面和数据的结合生成。

页面是由DIV+CSS实现的,这里不包含CSS代码,实现页面代码如下:

DOCTYPEhtml>

论坛首页

WEB课设论坛

——因为有了论坛,所以我们更出色

您好!

{$is_logined['username']} 退出

登录

注册

首页

个人中心

{$article['title']}

发表者:

{$article['username']}

时间:

{$article['post_time']}

评论:

{$article['replynum']}

前面显示概述

论坛的前台显示主要包括:

首页面的论坛类别显示、某版面下根贴的列表显示、我的帖子的列表显示、精华帖子的列表显示、搜索后根帖的列表显示和根贴与回复贴内容的详细显示。

其中在根贴的列表显示系列中,我的帖子、精华帖子和搜索这3个功能的实现是相似的,最终都是生成一个查询SQL语句,并通过执行该SQL语句获取一个符合条件的信息集合,然后返回页面进行显示。

不同的是它们生成SQL语句的方式,列表显示我的帖子,需要获取当前登录用户的用户名,然后生成查询SQL语句;列表显示精华贴,要执行的是一个固定、已知的SQL语句;列表显示搜索到的根贴,需要从页面表单中获取条件和搜索关键安后,才能生成SQL语句。

控制器的实现

ThinkPHP框架采用的MVC开发模式,是模型,视图,控制器相互分离又相互合作的关系,下面介绍控制器的实现:

namespaceHome\Controller;

useThink\Controller;

classIn

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2