PHP课程设计文档格式.docx

上传人:b****4 文档编号:18163522 上传时间:2022-12-13 格式:DOCX 页数:33 大小:371.54KB
下载 相关 举报
PHP课程设计文档格式.docx_第1页
第1页 / 共33页
PHP课程设计文档格式.docx_第2页
第2页 / 共33页
PHP课程设计文档格式.docx_第3页
第3页 / 共33页
PHP课程设计文档格式.docx_第4页
第4页 / 共33页
PHP课程设计文档格式.docx_第5页
第5页 / 共33页
点击查看更多>>
下载资源
资源描述

PHP课程设计文档格式.docx

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

PHP课程设计文档格式.docx

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

第二章总体设计

2.1系统目标

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

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

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

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

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

4.实现在线发表帖子。

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

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

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

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

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

2.2系统功能结构

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

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

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

图2-1系统功能结构图

2.2.1系统功能模块

1.用户注册

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

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

2.用户登陆

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

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

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

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

3.帖子管理

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

4.帖子发表

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

5.帖子回复

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

6.帖子浏览

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

2.2.3系统各模块流程

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

图2-2用户注册流程图

2.用户登陆

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

图2-3用户登录图

3.帖子发表

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

图2-4帖子发表图

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

6.帖子管理

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

2.3系统开发环境

2.3.1开发环境

Ø

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

✓操作系统:

Windows10

✓Web服务器:

Apache2.4

✓PHP:

Version5.5.29

✓数据库:

MysqlVer14.14Distrib5.6.23,forWin64(x86_64)

✓浏览器:

IE10+

✓分辨率:

最佳效果为1024×

768像素

✓开发工具:

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

✓开发框架:

ThinkPHP3.2.2

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

在应用开发领域中,目前系统平台的体系结构主要有两种,即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结构。

2.3.3PHP语言

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语言。

2.3.4ThinkPHP

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等服务器环境,正式版需要PHP5.0以上版本支持,支持MySql、PgSQL、Sqlite以及PDO等多种数据库,ThinkPHP框架本身没有什么特别模块要求,具体的应用系统运行环境要求视开发所涉及的模块。

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

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

ThinkPHP的优势:

模型(M):

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

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

控制器(C):

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

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

视图(V):

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

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

2.3.5MySQL数据库

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/更改功能,数据架构支持动态应用程序和开发人员灵活性(5.6[3]新增)

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

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

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

第三章数据库设计

3.1数据库分析

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

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

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

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

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

3.2数据库概念设计

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

3.3数据库逻辑设计

用户表

字段名

数据类型

长度

说明

描述

id

int

11

非空,主键

用户编号

username

varchar

50

用户名

password

密码

sex

2

男,女

性别

email

邮箱

add_time

timestamp

非空

注册时间

帖子表

帖子编号

pid

父帖编号

title

255

帖子标题

content

text

帖子内容

reply

回复数

user_id

非空,外键

post_time

发表时间

3.4数据库物理结构实现

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

/*

NavicatMySQLDataTransfer

SourceServer:

localhost_3306

SourceServerVersion:

50623

SourceHost:

127.0.0.1:

3306

SourceDatabase:

thinkphp

TargetServerType:

MYSQL

TargetServerVersion:

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'

PRIMARYKEY(`id`)

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

--Tablestructureforbbs_user

DROPTABLEIFEXISTS`bbs_user`;

CREATETABLE`bbs_user`(

`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,

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

第四章编程实现

4.1首页界面设计与实现

4.1.1首页界面设计

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

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

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

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

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

<

!

DOCTYPEhtml>

html>

head>

metacharset="

UTF-8"

>

title>

论坛首页<

/title>

linkrel="

stylesheet"

type="

text/css"

href="

__ROOT__/Public/css/main.css"

/>

__ROOT__/Public/Font-Awesome-3.2.1/css/font-awesome.min.css"

/head>

body>

divclass="

top"

<

brand"

WEB课设论坛<

/div>

brand-sm"

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

userinfopull-right"

<

ifcondition="

$is_logined['

loginflag'

]eqTRUE"

<

span>

您好!

{$is_logined['

username'

]} <

ahref="

{$logouturl}"

onclick="

returnconfirm('

确定退出'

);

"

退出<

/a>

/span>

else/>

{$loginurl}"

登录<

{$registerurl}"

注册<

/if>

menu"

dl>

dd>

{$index}"

首页<

/dd>

{$personal}"

个人中心<

/dl>

main"

dlclass="

articlelist"

foreachname="

article_list"

item="

article"

<

label>

主题:

/label>

aclass="

title"

{$article['

url'

]}"

title'

]}<

info"

<

iclass="

icon-user"

/i>

发表者:

icon-calendar"

时间:

post_time'

icon-comments-alt"

评论:

replynum'

/foreach>

footer>

Copyright©

2015-2020|SuperLAllrightsreserved|赣ICP备15004209号

/footer>

/body>

/html>

4.1.2前面显示概述

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

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

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

不同的是它们生成SQL语句的方式,列表显示我的帖子,需要获取当前登录用户的用户名,然后生成查询SQL语句;

列表显示精华贴,要执行的是一个固定、已知的SQL语句

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

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1