版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
JiangXiUniversityOfScienceAndTechnology目录TOC\o"1-5"\h\z\o"CurrentDocument"\h第一章需求分析 4\o"CurrentDocument"\h1.1功能性需求 4\o"CurrentDocument"\h非功能性需求 4第二章总体设计 52.1系统目标 5\o"CurrentDocument"\h2.2系统功能结构 5\o"CurrentDocument"\h2.2.1系统功能模块 6\o"CurrentDocument"\h2.2.3系统各模块流程 6\o"CurrentDocument"\h2.3系统开发环境 92.3.1开发环境 9\o"CurrentDocument"\h2.3.2系统平台体系结构的选择 9PHP语言 10ThinkPHP 10MySQL数据库 11第三章数据库设计 133.1数据库分析 13\o"CurrentDocument"\h3.2数据库概念设计 133.3数据库逻辑设计 143.4数据库物理结构实现 15第四章编程实现 171首页界面设计与实现 171.1首页界面设计 17\o"CurrentDocument"\h1.2前面显示概述 19\o"CurrentDocument"\h4.1.3控制器的实现 19\o"CurrentDocument"\h4.2注册页面的设计与实现 21\o"CurrentDocument"\h1注册页面的界面设计 21\o"CurrentDocument"\h4.2.2用户注册的控制器的实现: 214.3用户登录的设计 224.3.1用户登录的界面设计 22\o"CurrentDocument"\h4.3.2用户登录的控制器的实现: 234帖子详情页面设计 244.1帖子详情的前台界面效果设计 24\o"CurrentDocument"\h4.2帖子详情页面的控制器的实现 254.5个人中心的设计 285.1个人中心的前台界面设计 28\o"CurrentDocument"\h4.5.2个人中心控制器的设计 28第五章测试运行 321测试概述 32\o"CurrentDocument"\h2测试过程 32\o"CurrentDocument"\h2. 1用户注册的测试 32\o"CurrentDocument"\h2. 2用户登录的测试 33\o"CurrentDocument"\h2. 3帖子回复管理的测试 342.4新帖发表的的测试 35第六章总结 36第一章需求分析1.1功能性需求BBS也称为论坛,是bulletinBoardSystem的简称,意即电子公告板,是一种在Internet上常见的用于信息服务的Web系统。它主要给浏览者提供相互沟通的平台。BBS信息量大,形式自由,在论坛中大家可以发布信息,进行讨论、聊天等,是用户间交流的优秀平台。开发BBS论坛系统的目的是提供一个供用户交流的平台,为广大用户提供交流经验、探讨问题的社区。因此,BBS论坛系统最基本的功能首先是发表主题,其次是其他人员根据主题发表自己的看法。此外,为了记录主题的发表者和主题的加复者信息民,系统还需要提供用户注册和登录的功能。只有注册的用户登录后才能够发表和回复主题,浏览者(游客)只能浏览主题信息。根据用户的需求及以上的分析,BBS论坛需要具备前台功能和后台功能。BBS系统的作用在于提供给用户彼此交流的空间,这种交流的方式即使浏览文章和发表文章。因此,对于文章的管理是BBS系统的一个核心功能。发表文章的权力只能给予特定的人群,否则容易失去秩序,基于同样地考虑,修改文章的权力也只能提供给特定的人群。因此,用户的划分应该成为BBS系统的一个核心思想,系统将用户划分为普通用户、管理员2类,他们的权限不同,各司其职,其中管理员拥有最高的权力,可以对用户、文章、论坛3大对象进行增加、删除及修改操作。系统前台功能:前台模块提供给所有用户使用,不论是论坛的注册用户,还是普通的浏览者,都可以进入其中。区别在于随着用户的等级不同,所允许使用的功能也有所不同。显示各论坛类别及版面、查看版面下所有根帖、查看精华帖子、查看自己发表的帖子、搜索帖子、查看根帖内容、用户注册、用户登录、发表帖子、回复帖子系统后台功能:进入后台、论坛类别管理、版面管理、用户管理、用户注册1.2.非功能性需求平台限制:基于WindowslO,不需要安装其他软件。操作方式:全部操作都可以基于浏览器进行。第二章总体设计2.1系统目标对于典型的数据库管理系统,尤其是对像论坛这样的数据流量特别大的网络管理系统,必须要满足使用方便、操作灵活等设计需求。本系统在设计时应满足以下几个目标:采用人机对话的操作方式,界面设计美观友好,信息查看灵活、方便、快捷、准确,数据存储安全可靠。全面展示系统内所有帖子,方便直接查看。为用户提供一个方便、快捷的主题信息查看功能。实现在线发表帖子。提供登录模块,主要用于发表帖子时留下发表者的信息,和对发表的帖子进行管理。用户随时都可以査看自己发表的帖子。对用户输入的数据,系统进行严格的数据检验,尽可能排除人为的错误。系统最大限度地实现了易维护性和易操作性。系统运行稳定安全可靠。2.2系统功能结构用户访问论坛首页面后,可进行查看版面下根贴信息、查看自己发表的帖子、查看精华帖子、查看根贴信息、用户注册等功能。用户在此BBS论坛中通过注册成为该网站的真正用户并成功登录系统后,可进行发表帖子、回复帖子、查看自己发表的帖子,删除自己发表的帖子,以及删除自己发表帖子下回复等操作。BBSt论坛系统功能结构图如图下图所示。图2-1系统功能结构图2.2.1系统功能模块用户注册在登录页面单击“注册“链接即可进入用户注册页面,此页面提供填写用户注册信息的表单,注册信息包括用户名、密码、确认密码,性别,爱好等等,其中有些信息是必须填的,有些是可以选填的。用户填写完表中信息后,单击确认按钮,如果通过验证,即可成为BBS系统注册用户,此时用户在前台登录页面中登录进去之后,即可使用前台的全部功能。用户登陆用户进入论坛首页,即可点击登录按钮,进入用户登录页面,此页面提供用于填写用户名与密码的表单,页面中有一个【登录】按钮和【注册】按钮,分别提供给3中身份的用户使用:对于己经在论坛注册的用户,在页面输入用户名及密码后,单击登录按钮,如果用户名和密码通过验证,则进入论坛,可以使用前台的全部功能。对于游客,单击“游客”链接即可进入论坛,游客可以浏览其他用户发表的文章,但不允许在论坛中发表文章。对于想注册的用户,单击“注册”链接即可进入注册页面,在填写完相关信息后,即成为BBS系统的用户,拥有了普通用户的所有权限。帖子管理管理员可以对所有帖子进行转移,置顶,删除,加精等操作,版主可以转移本版块帖子,也可以对本板块帖子进行置顶,删除,加精等操作。帖子发表注册用户进入某一论坛之后,可以单击主题列表页面上的“快速留言“链接,以使用发表文章的功能,系统将转至发表文章页面,其中填写的内容包括文章的标题和内容。帖子回复在某一话题的帖子列表页面中,注册用户可以单击右上角的“回复主题“链接,发表对该主题的回复内容。帖子浏览注册用户可以任意浏览权限内的帖子,未注册用户只能浏览,不能回复。2.2.3系统各模块流程用户注册填写个人信息——信息检验一一保存用户信息(开始一)—写个人信字/C^D图2-2用户注册流程图用户登陆输入用户名和密码——信息验证一-基于角色授权帖子发表注册用户——选择版块发表主题——主题持久化
5.帖子回复用户——针对主题发表回复——回复持久化C开,始「)/会对主题发表回复7
回复持久化
(结束)6.帖子管理持有管理员或版主权限——转移,置顶,删除等操作2.3系统开发环境2.3.1开发环境>在开发此论坛的时候,需要具备下面的软件环境:,操作系统:Windows10/Web服务器:Apache2.4/PHP:Version5.5.29,数据库:MysqlVer14.14Distrib5.6.23,forWin64(x86_64)/浏览器:IE10+/分辨率:最佳效果为1024X768像素/开发工具:Hbuilder,免费开源的移动开发工具/开发框架:ThinkPHP.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语言,它相对于其他语言。编辑简单,实用性强,更适合初学者。/跨平台性强,由于P1IP是运行在服务器端的脚本,可以运行在UNIX、LINUX、WINDOWS、MacOS、Android等平台/效率高,PHP消耗相当少的系统资源。,图像处理,用PHP动态创建图像,PHP图像处理默认使用GD2O且也可以配置为使用imagemagick进行图像处理。/面向对象,在php4,php5中,面向对象方面都有了很大的改进,php完全可以用来开发大型商业程序。,专业专注,PHP支持脚本语言为主,同为类C语言。2.3.4ThinkPHPThinkPHP是为了简化企业级应用开发和敏捷WEB应用开发而诞生的。最早诞生于2006年初,2007年元旦正式更名为ThinkPHP,并且遵循Apache2开源协议发布。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进。ThinkPHP是一个快速、兼容而且简单的轻量级国产PHP开发框架,诞生于2006年初,原名FCS,2007年元旦正式更名为ThinkPHP,遵循Apache2开源协议发布,从Struts结构移植过来并做了改进和完善,同时也借鉴了国外很多优秀的框架和模式,使用面向对象的开发结构和MVC模式,融合了Struts的思想和TagLib(标签库)、RoR的0RM映射和ActiveRecord模式。ThinkPHP可以支持windows/Unix/Linux等服务部环境,正式版需要PHP5.0以上版本支持,支持MySqKPgSQL、Sqlite以及PDO等多种数据库,ThinkPHP框架本身没有什么特别模块要求,具体的应用系统运行环境要求视开发所涉及的模块。作为一个整体开发解决方案,ThinkPHP能够解决应用开发中的大多数需要,因为其自身包含了底层架构、兼容处理、基类库、数据库访问层、模板引擎、缓存机制、插件机制、角色认证、表单处理等常用的组件,并且对于跨版本、跨平台和跨数据库移植都比较方便。并且每个组件都是精心设计和完善的,应用开发过程仅仅需要关注您的业务逻辑。>ThinkPHP的优势:模型(M):模型的定义由Model类来完成。Model类位于项目目录下面的LibModel目录。控制器(C):应用控制器(核心控制器)和Action控制器都承担了控制器的角色,区别在于Action控制器完成业务过程,而应用控制器(App类)负责调度控制。Action控制器位于项目目录下面的LibAction目录。视图(V):模板的实现是和框架无关的,做到了100%分离,可以独立预览和制作。模板目录位于项目目录下面的Tpl目录。2.3.5MySQL数据库>MySQL数据库的优势:使用C和C++编写,并使用了多种编译器进行测试,保证了源代码的可移植性。支持AIX、FreeBSD>HP-UX>Linux>Mac0S>NovellNetware>OpenBSD、OS/2Wrap、Solaris>Windows等多种操作系统。为多种编程语言提供了API。这些编程语言包括C、C++、Python、Java、Perl、PHP、EiffeKRuby,.NET和Tel等。支持多线程,充分利用CPU资源。优化的SQL查询算法,有效地提高查询速度。既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中。提供多语言支持,常见的编码如中文的GB2312、BIG5,日文的Shift_JIS等都可以用作数据表名和数据列名。提供TCP/IP、ODBC和JDBC等多种数据库连接途径。提供用于管理、检查、优化数据库操作的管理工具。支持大型的数据库。可以处理拥有上千万条记录的大型数据库。支持多种存储引擎。MySQL是开源的,所以你不需要支付额外的费用。MySQL使用标准的SQL数据语言形式。MySQL对PHP有很好的支持,PHP是目前最流行的Web开发语言。MySQL是可以定制的,采用了GPL协议,你可以修改源码来开发自己的MySQL系统。在线DDL/更改功能,数据架构支持动态应用程序和开发人员灵活性(5.6[3]新增)复制全局事务标识,可支持自我修复式集群(5.6[3]新增)复制无崩溃从机,可提高可用性(5.6[3]新增)复制多线程从机,可提高性能(5.6[3]新增)第三章数据库设计3.1数据库分析通过对实现Web端论坛的基本功能的内容和数据分析,设计如下面的数据项和数据结构。用户信息,包括的数据项有:用户编号,名字,性别,密码,邮箱,电话,注册时间等。帖子信息,包括的数据项有:帖子编号,帖子标题,帖子内容,帖子发表时间,发表帖子用户编号,帖子所属父帖编号(用于回复帖),帖子的回复数据。3.2数据库概念设计根据上面设计规划出的实体,对各个实体具体的描述E-R图如下:3.3.3数据库逻辑设计用户表字段名蟾类型居说明描述idint11非空,主键用户编号usernamevarchar50用户名passwordvarchar50密码sexvarchar2男,女曲emailvarchar50邮箱add_timetimestamp非空注册时间帖子表字段名数据类型长度说明描述idint11非空,主键帖子编号pidint11父帖编号titlevarchar255帖子硒contenttext帖子内容replyint11回复数user_idint11非空,外键用户编号post_timetimestamp非空发表时间3.43.4数据库物理结构实现根据以上的逻辑分析所得到表的关系,我们使用T-SQL语言设计得到数据库和数据表。/*NavicatMySQLDataTransferSourceServer :localhost_3306Source Server Version : 50623Source Host : 127.0. 0.1:3306Source Database : thinkphpTarget Server Type : MYSQLTarget Server Version : 50623FileEncoding :65001Date:2016-01-2116:05:30*/SETFOREIGN_KEY_CHECKS=O;一一Tablestructureforbbs_articleDROPTABLEIFEXISTS'bbs_article';CREATETABLE'bbs_article'('id'int(10)unsignedNOTNULLAUTO_INCREMENT,'title'varchar(255)COLLATEutf8_unicode_ciDEFAULTNULL,contentmediumtextCOLLATEutf8_unicode_ci,'post_time'timestampNULLDEFAULTCURRENT」IMESTAMP,'user_id'int(ll)DEFAULTNULL,'pid'int(ll)DEFAULT'O',replynum'int(11)DEFAULT'O',PRIMARYKEY('id'))ENGINE=InnoDBAUT0_INCREMENT=38DEFAULTCHARSET=utf8COLLATE=utf8_unicode_ci;一一Tablestructureforbbs_userDROPTABLEIFEXISTS'bbs_user';CREATETABLE'bbs_user'('id'int(10)unsignedNOTNULLAUTO_INCREMENT,user_namevarchar(50)COLLATEutf8_unicode_ciDEFAULTNULL,passwordvarchar(255)COLLATEutf8_unicode_ciDEFAULTNULL,sexvarchar(2)COLLATEutf8_unicode_ciDEFAULT男,email'varchar(50)COLLATEutf8_unicode_ciDEFAULTNULL,'add_time'timestampNULLDEFAULTCURRENT」IMESTAMPONUPDATECURRENT_TIMESTAMP,PRIMARYKEY('id'))ENGINE=InnoDBAUT0_INCREMENT=6DEFAULTCHARSET=utf8C0LLATE=utf8Unicodeci:第四章编程实现4.1首页界面设计与实现4.1.1首页界面设计本系统中所有页面都采用了一种页面框架,该页面框架采用垂直分栏结构,分为4个区域:页头、菜单栏、内容显示区和页尾。网站前台首页面的运行结果如图所示。WEB课设论坛——a为有了论版,所以雖理出色主题:(求助交流]严声啊,save($data)方法如果遇到where中有:0时乱入1■ :rSW12016-01-20m$038Q■论:0主题:[求助交流]求助,index.html乱码怎么办?,宣表•:Unna2016-01-201WW1Q":0主题:[求助交流]公共调用问题,请大大们给点思路,非常感谢!:Unna■时间:2016-01-201&4&13Qwe:i主題:[求助交流]thinkphp不能自动释放掉数据库连接??:Unna■nc:2016-01-201»47:17Q疏8:1主题:[求助交流1图片搜索浏览器有瑯个较好:Llnna:2016-01-201&4633主题:[求助交流]模板变量输出的问麒,:Llnnafil时,:2016-01-201&443SQ评论:1CopyrightO201S2O2OISupeflookxnAllrightsresmed|WCP*1S0042099实际前台页而在ThinkPHP开发中是一个静态的模板,然后由Smarty视图引擎,实现前台静态页面和数据的结合生成。页面是由DIV+CSS实现的,这里不包含CSS代码,实现页面代码如下:<!DOCTYPEhtml><html><head><metacharset="UTF-8”><title>论坛首页</title><link rel="stylesheet" type=〃text/css〃href=" ROOT—/Public/css/main.css”/><link rel="stylesheet" type=〃text/css〃href=〃 ROOT /Public/Font-Awesome-3.2.1/css/font-awesome,min.css〃/></head><body><divclass="top〃><divclass=/,brand,/>WEB课设论坛</div> <divclass=〃brand-sm〃> 因为有了论坛,所以我们更出色</div><divclass=〃userinfopull-right*><ifcondition=,,$is_logined[,loginflag*]eqTRUE〃><span>您好!{$is_logined[‘username']}<ahref=//($logouturl}z/onclick="returnconfirm(,确定退出');">退出</a></span><else/><ahref="{$loginurl}">登录</a><ahref="($registerurl}/z>注册</a></if></div></div><divclass="menu"〉<dl><dd><ahref=//{$index}">首页</a></dd><ifcondition=〃$is_logined['loginflag']eqTRUE〃><dd><ahref=〃{$personal}">个人中心。a></dd></if></dl></div><divclass=〃main"〉<dlclass=〃articlelist”〉<foreachname=,,article_list/zitem="article"><dd><label>主题:</label><a class=〃title”href=z,($articlefurf]}">{$article['title']}</a><divclass="info〃><span><i class="icon-user"X/i>发表者:{$articlefusername,]}</span><span><i class="icon-calendar〃X/i>时间:({article['post_time,]}</span><span><iclass=,/icon-comments-alt,,></i>评论:($articlefreplynum,]}</span></div></dd></foreach></dl></div><footer>Copyright©2015-2020ISuperLook,cnAllrightsreservedI赣ICP备15004209号</footer></body></html>4.1.2前面显示概述论坛的前台显示主要包括:首页面的论坛类别显示、某版面下根贴的列表显示、我的帖子的列表显示、精华帖子的列表显示、搜索后根帖的列表显示和根贴与回复贴内容的详细显示。其中在根贴的列表显示系列中,我的帖子、精华帖子和搜索这3个功能的实现是相似的,最终都是生成一个查询SQL语句,并通过执行该SQL语句获取一个符合条件的信息集合,然后返回页面进行显示。不同的是它们生成SQL语句的方式,列表显示我的帖子,需要获取当前登录用户的用户名,然后生成查询SQL语句;列表显示精华贴,要执行的是一个固定、已知的SQL语句;列表显示搜索到的根贴,需要从页面表单中获取条件和搜索关键安后,才能生成SQL语句。4.1.3控制器的实现ThinkPHP框架釆用的MVC开发模式,是模型,视图,控制器相互分离又相互合作的关系,下面介绍控制器的实现:<?phpnamespaceHome\Controller;useThink\Controller;classIndexControllerextendsController!publicfunctionIndex())$article=D("Article");$u=DCUser);$article_list=$article->where('pid=O,)->order('post_timedcsc')->select();for($i=0;$i<count($article_list);$i++)($user_id=$articlc_list[$i]['uscr_id'];$u_name=$u->where(,id='.$user_id)->getFieldCuscr_namc');$articlc_list[$i]['username']=$u_name;$article_list[$i]furT] =—ROOT—.'/index.php/Home/Article/Index/id/*.$article_list[$i]['id'].'.htmr;}$this->assign(〃articlc_list”,$article_list);$u=array(Toginflag'=>(session(,zusername,z))?TRUE:FALSE,'username'=>(session("username"))?session("username"):);$this->assign(〃is_logined”,$u);$this->assign("index”,U('Index/Index*));$this->assign(〃logouturl〃,U('Index/logout*));$this->assign("loginurl”,U('Login/Login,));$this->assign("registerurl”,U('Login/Register,));$this-〉assign("personal”,U(〃Personal/Index〃));//$this->assignCzarticleurr\U('Article/Index'));$this~>display();}publicfunctionLogout()(session(*username*,null);redirect(U('Index/Index*));?>
4.2注册页面的设计与实现4.2.1注册页面的界面设计用户注册页面的界面设计效果如下:團欢迎注册用户名:核码:蜘想码:蜘想码:4.2.2用户注册的控制器的实现:用户注册功能的控制器的代码如下:<?phpnamespaceHome\Controller;useThink\Controller;classLoginControllerextendsController)publicfunctionRegister()($this->assign("registerdo",U(〃Login/RegisterDo〃));$this->assign("index”,U('Index/Indcx'));$this->display("register");publicfunctionRegisterDo()($username=@$_POST['username'];$pwd=@$_POSTrpwd,];$repwd=@$_POST['repwd,];if($username== \\$pwd==〃"||$repwd==”“)($this->error('请把信息填写完整',U('Login/Register,),30000000);}if($pwd!=$repwd)($this->error(,密码和确认不一致!',U('Login/Register,),30000000);}$user=D("User");if($user->checkUserExist($username))($this->errorC用户名已经存在,请重新注册!UCLogin/Register),3000000000);}$u['user_name']=$username;$ufpassword*]=shal(md5($pwd));$user->add($u);session("username”,$username);$this-〉success。恭喜你,注册成功!',U(*Index/index*),300000000000000);//echo〃RegisterDo〃;?>4.3用户登录的设计4.3.1用户登录的界面设计用户登录的界面设计如下:,请您庭用户名:悟码:4.3.2用户登录的控制器的实现:实现用户登录的控制器的代码如下:<?phpnamespaceHome\Controller;useThink\Controller:classLoginControllerextendsController(publicfunctionIndex()($this->display("login");publicfunctionLogin(){$this->assign(〃logindo〃,U('Login/LoginDo'));$this->assign("index”,U('Index/Index'));$this-〉display("login");publicfunctionLoginDo()($username=@$_POST['username,];$pwd=@$_POSTPp\vd'];if($username==〃"||$pwd=="〃)($this->error(z/用户名或密码不能为空!“,U(〃Login/Login/〃),3);$pwd=shal(md5($pwd));$u=DCUser);$data=$u~>where(*user_name=z,,.$username.andpassword=.$pwd.')->find();if(!$data)($this->errorC用户名或密码错误!U('Login/Login/'),3);}session("username”,$username);redirect(U('Index/Index,));?>4.4帖子详情页面设计4.4.1帖子详情的前台界面效果设计帖子详情的界面设计效果如下:WEB课圜仑坛―例了论坛.所以我们史出色■炎[求助交流]模板变量辎出的问题:uwa»T<:2016-01-201tt44:3S :1IffiiMlflWvB閱IWB參31忘任♦•板中VThinUang.g的(M.0)昵律用的.但应在我的这个gendec.O这IB的0还呈个安■费怎么等呢?3么寄事可($rhinkJan9.gendef,$usef.gender|BW«TW.评论tATesterB2016>01>201»5:31触saw归海tre发表评论再貞论OvyrlgMC201520201SupcttookxnAllrightsresefwd|MCPtt1MX>4209e4.4.2帖子详情页面的控制器的实现实现帖子详情査看的控制器的代码如下:<?phpnamespaceHome\Controller;useThink\Controller;classArticleControllerextendsController(functionIndex()($u=DCUser);$article=D("Article");$art_id=$_GET['id'];〃如梟传入商ID有误则返回首页if(!is_numeric($art_id))redirect(U('Index/Index*));if(!$article->where(*id='.$art_id)->select())(redirect(U('Index/Index'));〃根据ID获取文章$article_content=$article->where(*id=,.$art_id)->find();$user_id=$article_contentfuser_id'];$article_contentfusername'] =$u->where(*id='.$user_id)->getField(*user_name,);$this~>assign(/,article_content,\$article_content);//获取文章评论$article_reply=$article-〉where('pid='.$art_id)->select();for($i=0;$i<count($article_reply);$i++)($user_id=$article_reply[$i]fuser_id,];$article_reply[$i]fusername*] =$u->where(,id='.$user_id)->getField(*username*);)$this-〉assign(〃article_reply〃,$article_reply);〃判断是否登录,设定评论框$u=array(Toginflag'=>(session(,zusername,z))?TRUE:FALSE,'username'=>(session("username"))?session("username"):〃〃);$this->assign(〃is_logined〃,$u);〃定义跳转链接$this->assign("logouturl",U('Index/logout*));$this->assign("loginurl”,U('Login/Login*));$this-〉assign("registerurl”,U('Login/Register,));$this->assign("index”,U('Index/Index*));$this->assign(〃postreplytuiT‘,U('Artic1e/PostRep1yDo*));$this->assign("personal”,U("Personal/Index"));$this->display();)publicfunctionPostReplyDoO(〃提交评论前先判断是否有登录$u=D(〃User");$article=D(,,Article,/);if(!session(z,username/z))redirect(U("Index/Index"));〃获取内容$reply['content']=@$_POST['reply'];$rcply['pid']=@$_POST['id'];〃判断评论的内容是否为空if(trim($reply[‘content'])=="")($this->errorC评论不能为空!,3);}〃获取用户ID$username=session(,zusername/z);Sreplyfuser_id']$u->where(,zuser_name=,$username.//)->getField(,id');〃评论数加1$particlefreplynum,]$artic1e->where(*id='.$replyfpid'])_>getField(,replynum');$particlefreplynum,]=$particlefreplynum,]+1:〃更新父帖回复数$article->whereCid='.Sreplyfpid'])->save($particle);〃添加回复记录$article->data($reply)->add();$this->success(*评论成功,正在为您返回 “,3);?>4.5个人中心的设计4.5.1个人中心的前台界面设计WEB课设论坛—为有了论坛.所以史出色■员我发衰的主题出的际BLdi32016*01*201&4«Se求動交旋]图片瘻重浏顒M•个濒Q1■201601XMM33a求動交遮1thinkphpT«Sin»IBSffllfH»iSW??92016*01-201ft47:179求動交谶I公共aw浏S,代材0»8点BM8.非«««!Q1■201601208求動交流|枷,indexhtmlftaS么与?GO92016*01*201849:318发衰新主羅後:CopyrlgEC2015X)20|SupetloolcxnAllrightsrnmvd|WCPS1S004209Q4.5.2个人中心控制器的设计个人中心功能的控制器的代码如下:<?phpnamespaceHome\Controller;useThink\Controller;classPersonalControllerextendsController(publicfunctionIndex()($u=DCUser);$article=D("Article");〃判断是否登录,设定评论框$ulogin=array('loginflag'=>(session(z/username/z))?TRUE:FALSE,'username'=>(session("username"))?session(,,username,,):〃〃y);$this-〉assign(〃is_logined〃,$ulogin);〃如果没有登录不能进入本页面if(ISuloginfloginflag*]){redirect(U('Index/Index*));)〃本人所发表的主题〃获取用户id$username=session(,,usernamez,);$selffuserid*] =$u->where(z/user_name=,〃・Jusername.//)->getField(,id');$art_self = $article->where(,pid=0 anduser_id=,.$selffuserid*])->select0;for($i=0;$i<count($art_self);$i++)($art_self[$i]furT] =—ROOT—.“/index.php/Home/Artic1e/1ndex/id/z,.$art_self[$i]fid'].”.html”;$art_self[$i]['del_uiT] =—ROOT—.Vindex.php/Home/Personal/Remove/id//z.$art_self[$i]fid'].〃.html";}$this->assign(,/art_self/z,$art_self);//定义跳转链接$this->assignC'logouturl,z,U('Index/logout*));$this->assign("loginurl”,U('Login/Login*));$this->assign("registerurl”,U('Login/Register*));$this->assign("index”,U('Index/Index*));$this->assign("addurl",U('Personal/Add,));$this->assign("personal”,U(z,Personal/Index/z));$this-〉display();}publicfunctionRemove()($u=D('User');$article=D("Article");〃没有登录不能删除if(!session(,,username,/))(redirect(U('Indcx/Index'));$del_id=@$_GETfid'];〃如桌id不息自己的不能删除$username=session("username");$self['userid'] =$u->where(zzuser_name=,〃.$username.〃‘/,)->getField(,id');$is_self=$article-〉where(〃user_id=〃.$self["userid"]・〃andid=〃.$del_id)->find();ifO$is_self){redirect(U(/zPersonal/Index/z));}$article-〉where("id=".$del_id."orpid=z,.$del_id)->delete();$this->successC删除成功!定在为您返回3);}publicfunctionAdd()($u=D('User');$article=D("Article");〃没有登录不能提交if(!session("username"))(redirect(U('Index/Index*));)$artCtitle*]=@$_POST['title'];$a
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 纸袋制作课件教学课件
- 防蜇课件教学课件
- 获奖 课件教学课件
- 2024年度农产品收购合同
- 2024年企业安全评价与咨询服务合同
- 2024年度空气能设备安装与验收合同
- 2024国际快递服务全面合作协议
- 2024桩基工程施工合同范本桩基工程施工合同
- 2024年企业合并收购协议
- 2024个人租房的合同模板范本
- GB 30255-2019室内照明用LED产品能效限定值及能效等级
- 全套教学课件《管理学基础》
- 深度解读强基计划-被强基计划课件
- 第五章肺孢子菌病课件
- 魏晋南北朝服饰课件
- 无机及分析化学考试题(附答案)
- 可可脂巧克力课件
- 交通连四方 杭州交通的发展课件
- 梨树栽培技术 课件
- 第13讲 教学设计的ASSURE模式(V5.1)公开课一等奖省优质课大赛获奖课件
- 三年级上册美术课件-3.色彩的变化|赣美版 (共19张PPT)
评论
0/150
提交评论