版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、目录中文摘要1Abstract2前言31. 高校知识问答平台开发背景41.1 高校问答服务发展现状与特点41.2 动态网站开发技术背景51.2.1 网站后台技术61.2.2 网站前端技术71.2.3 数据库开发技术81.3 LAMP技术介绍82. 系统总体设计102.1 需求分析102.2 系统模块设计112.2.1 E-R图112.2.2 系统模块图122.2.3 流程图122.3 数据库设计143. 系统详细设计213.1 网站基本功能设计213.1.1 登录功能213.1.2 注册功能223.1.3 提问功能253.1.4 问题搜索功能283.1.5 回答功能293.1.6 评论功能30
2、3.1.7 点赞功能323.1.8 反对功能343.1.9 收藏功能363.1.10 修改发布问题功能383.1.11 修改个人资料功能393.1.12 问题审核功能413.1.13 前端开发技术423.2 网站高级功能实现453.2.1 Ueditor引入453.2.2 防XSS攻击463.2.3 数据可视化483.3 网站部署及上线504. 总结与展望514.1 总结514.2 展望51参考文献53中文摘要信息化时代呈现出信息数量激增的现象,加剧了高校实体间的信息不对称。对高校信息用户而言,信息的直接性、准确性和及时性显得尤为重要。现阶段的高校信息服务难以满足师生的信息需求和知识需求,本文
3、提出用互助式问答平台改善这一现状。本文所设计的高校知识问答平台涉及学生、教师、和管理员三种用户类型,并且提供了问答社区、数据统计和个人中心三个主要模块。针对高校信息服务出现的问题,本文设计并实现了知识问答、标签系统、资源定位和共享等功能。另外,本问答系统围绕问题进行了相关的统计分析,在一定程度上体现了用户关注的热点,参与的程度,以及对所提供的解决方案的支持度,这都为高校发现、了解和解决用户的诉求提供了新的途径。问答平台的构建采用软件工程的思想,系统实现采用了LAMP环境,即结合Linux环境、Apache服务器、MySQL数据库和PHP编程语言开发,并选取主流的开源框架ThinkPHP进行编程
4、。最终在新浪云平台部署网站并上线。关键词:高校知识问答平台;资源定位;标签系统;LAMP;AbstractThe phenomenon that the amount of information is increasing sharply is presented in information era, which intensifies the information asymmetry between the entity of colleges an universities. The substantivity,accuracy and timeliness of informati
5、on is especially important for users in colleges and universities. At this stage, the information service of colleges and universities is difficult to meet the information needs of teachers and students and knowledge requirements. This article comes up with a solution aiming to improve the situation
6、 by using collaborative Q&A platform. The collaborative Q&A platform has three characters that include students, teachers and managers. It provides three main modules including Q&A community, resource sharing community and personal center. According the problems in college information services, func
7、tions such as knowledge Q&A, tag system, resource locating and sharing are designed and realized in this paper. Whats more, this Q&A system implements related statistical analysis around these questions. It to some extent reflects the hot spots that users concern about,the degrees that users partici
8、pate in and the supporting rate that provided for the questions. Moreover, it provides a new way for colleges to find, learn about and solve the problems of users. The idea of software engineering is brought to construct the Q&A platform, while the system applies LAMP environment, which combined wit
9、h Linux, Apache, MySQL and PHP script language. Meanwhile, the coding environment is called ThinkPHP, which is a mainstream and open-source framework, followed by introduction for deploying the site via SAE.Keywords: college knowledge Q&A platform; resource location; label system; LAMP;前言随着大数据时代的到来,
10、信息量急速增长,信息碎片化趋势愈加严重,传统的信息服务已经很难满足用户的信息需求,因此用户对知识服务的需求日益增长。目前国内较为知名的问答平台为知乎,知乎是针对学科分类的,“知乎”通过关系社区的形式并引入维基百科社区精神,通过用户节点将高质量的问答内容大规模地生产和分享,并最大程度调动用户力量剔除劣质问题,从而构建高质量问答社区以及更有价值的人际关系网刘佩,林如鹏. 网络问答社区“知乎”的知识分享与传播行为研究J. 图书情报知识,2015(6):109-119.。社交问答网站的出现为丰富学科知识服务形式提供了一种新的选择,这类服务在传统的问答模式下重建人与信息的关系,问题的探索和知识的获取不再
11、依赖单一来源,而是采用人人参与、大家投票的方式获取个人认为满意的答案,并且依托用户间紧密联系的社会化网络关系促进更多问题的提出、解答和传播刘剑涛. 高校学科知识问答社区构建研究J. 现代情报,2014(7):100-103.。相对于网络问答社区,高校内的信息需求和信息服务现状有所不同。高校内信息服务需求产生的根源在于高校内实体间的信息不对称。传统的信息传播模式,如面对面交流和单向的信息咨询,已经很难满足学生对知识的需求。纵向上看,同一专业内教师和高年级的学生拥有更多的信息资源,知识深度不一致;横向上看,不同专业的师生掌握不同专业的信息资源,形成知识交叉。问答平台出现的意义首先在于缓解信息的不平
12、衡。其次,学生对于信息的精准性和直接性要求日益提高,而通过传统的纸质文献和电子文献检索信息的成本较大,也催生了高校问答平台的发展。目前高校的知识问答平台发展还不成熟。高校有着较为严谨的学科分类体系,众多的教师和学术专家,以及对各类知识充满着好奇心的学生。如何能将学校的各类知识资源合理利用,如何能了解用户的需求和关注的热点,本文通过设计和构建高校知识问答平台,对于优化高校信息资源配置和提升高校信息服务质量均有一定的借鉴意义。1. 高校知识问答平台开发背景本章节通过对问答平台现状和特点的阐述,探索构建高校问答平台的优势,再通过研究网站开发技术,说明站点实现的技术方案,最后介绍利用LAMP开发问答平
13、台的优势和步骤。1.1 高校问答服务发展现状与特点1.1.1 问答服务的发展现状与特点问答服务发展至今共展现出三种主要形式:被动式问答服务、主动式问答服务和互助式社交问答服务。目前主流的问答服务是社交问答和互助式问答相结合的形式,如美国的“Quora”和国内的“知乎网”刘高勇,邓胜利. 社交问答服务的演变与发展研究J. 图书馆论坛,2013(1):17-21.。相对于传统的问答服务,现代问答服务更加注重答案的质量,结合知乎的特征,问答质量的保证措施有:a. 投票和点赞决定答案排序b. 较为专业的用户群体c. 围绕知识的理性分析氛围问答服务得以发展,原因之一是用户对于无偿分享知识的意愿正在逐步提
14、升。西方学者克莱舍基提出认知盈余的概念,认为网络时代的用户在拥有时间和知识后具有强烈的分享知识的欲望认知盈余时代基于话题的知乎是如何运营的EB/OL.2016-04-01.。特别是在Web 2.0时代,每一位用户在网上接受不同的知识,都表现出认知盈余的特征,这一现象加速了问答服务的发展。相比于搜索引擎,问答服务更突出人的作用,在传统的搜索引擎包括被动式问答服务中,信息服务的质量依赖于计算机算法,人的地位往往没有算法重要。但是在问答服务中,信息服务质量直接由人的知识水平决定,具有较高水平的回答帮助提问者省去甄别信息的过程,将信息服务上升为知识服务。同时,因为问答服务更加突出人的作用,因此具有较高
15、知识水平的用户在问答社区中将更受欢迎和尊敬。根据马斯洛需求层次理论,人的自我实现需求高于其他需求,所以问答服务满足用户自我实现的需求和被尊重的需求进一步促进了问答服务的发展。综上所述,问答平台的特点可以总结如下:a. 问答平台的出现满足了用户分享知识的需求b. 问答平台突出人的重要性c. 知识服务促进问答平台的发展1.1.2 高校知识问答平台的特点高校知识问答平台除了有传统问答平台的特点外,也有着以下自身的特点。a. 知识的专业性问答平台回答的知识深度和专业程度是问答服务质量高低的重要保障,高校问答平台的用户绝大多数为受过高等教育的专业性人才,具备较为专业和全面的专业知识,同时,平台包含了教师
16、,保证了问答知识的深度和准确性。b. 社交关系稳定高校问答平台的社交关系产生于院系学生间和师生间,相对于社会化问答平台,彼此信任程度很高,透明度更强。同时,同一院系的师生在专业领域均有不同程度的关注,社交关系有学科性的联系。以上两点有利于形成稳定、健康的社交关系。c. 跨专业的知识分享高校有着丰富而严谨的学科分类,各类专业的教师和学生可以在横向上分享知识,在纵向上理解知识,可以让用户进行跨专业的学习和研究,让用户不仅仅局限于本专业范围,为拓宽高校师生的知识范围提供了一定的帮助。d. 基于文献资源的知识共享一方面高校师生的知识来源主要为文献资料,理论性较强,逻辑框架清晰,知识准确度较高,为知识的
17、有效传播提供了保障。另一方面,师生在作答时,往往会参阅文献资料,高校的文献中心提供多种文献知识库,甚至提供了文献统计、决策参考和其他情报服务。基于文献资源的知识分享在很大程度保证了解答的科学性和严谨性。e. 问题的多类型在高校中,学生对知识不仅有专业和兴趣上的需求,对学习和生活的相关方面也有着各类的诉求,高校员工也同样如此。1.2 动态网站开发技术背景网站开发技术发展至今,已经很少有单独的静态页面所构成的站点,目前无论是企业还是个人网站均涉及与数据库的交互,即所谓的动态网站开发技术。以数据访问层、中间业务层和表现层为站点架构的“三层结构”模型是动态网站开发的必备技术。根据“三层结构”的模型,网
18、站开发技术可以细分为网站后台技术、网站前台技术和数据库技术。1.2.1 网站后台技术网站后台技术发展至今,可以作为服务器端的技术先后出现CGI、ASP、JSP、ASP.NET、PHP张晋芳. PHP在网站后台建设中的优势J. 电脑开发与应用,2012(12):39-40,49.,主流的开发语言为JAVA、C#、PHP、PYTHON等,图1.1可以看出GitHubGitHub for WindowsEB/OL.2016-4-14.http:/github-for-.上各语言的使用情况(数据截止2015年)。图1.1 GitHub上各语言流行程度排名网站后台建设的两大原则是功能优先原则和高效数据访
19、问原则。网站后台作为中间访问层,主要功能是接收前台提交的数据,通过对数据库的增删改查,将用户数据与数据库进行交互,并将数据库中的数据以特定的形式展现给用户。因此,网站后台架构设计与服务器及数据库紧密相关,其架构优化程度直接影响站点的性能和响应速度。图1.2 网站数据流向图随着技术的不断进步,特别是针对不同语言产生的框架的发展,目前主流的开发技术都可以高效、健壮的开发网站后台,各种语言均有其优势。本站的开发选用PHP语言,相对于JAVA和.net语言,PHP语言作为脚本语言,可以和HTML编写Web网页,当客户端访问一个页面时,服务器将首先处理PHP命令的页面,然后将处理后的结果和HTML 内容
20、一起发送至客户端浏览器金鑫. 动态网站开发技术探讨J. 企业技术开发,2015(27):73,75.。1.2.2 网站前端技术网站的前端技术主要涉及到HTML、CSS和JAVASCRIPT,前端技术主要是实现与用户交互的页面。HTML指超文本标记语言,是整个页面的构成元素;CSS指层叠样式表,用来规定页面的布局和样式;JAVASCRIPT主要负责页面的操作需求,在谷歌V8引擎的支持下,JAVASCRIPT可以结合如Node.js等框架在服务器端运行Chaniotis, Ioannis K.;Kyriakou, Kyriakos-Ioannis D.;Tselikas, Nikolaos D.
21、Is Node.js a viable option for building modern web applications? Aperformance evaluation studyM.springer wein,Austria,2015:97.。目前前端技术发展的趋势是模块化,将网页根据样式布局和相应动作划分为单独的模块,由不同开发人员进行开发,开发完成后再将各个模块组合成一个整体。这样的好处是,各个模块的开发相互独立不会相互影响,并且开发好的各个模块可以复用,避免冗余劳动。在模块化的进程中,出现了CSS Sprites、YUI Compressor等开发工具,也出现了JQuery等组
22、件库张晓红. 网站前端模块化开发策略研究J. 计算机时代,2013,02:38-39.。本站将运用JQuery库进行前端的开发。1.2.3 数据库开发技术数据库开发技术由传统的层次型数据库、网络数据库、关系数据库逐步发展至现代的面向对象数据库、分布式数据库、人工智能型数据库吕玲玲. 数据库技术的发展现状与趋势J. 信息与电脑(理论版),2011(8):118-120.。目前主流的关系型数据库包括MySQL、SQL Server、Oracle等。在现代软件开发的过程中,由于真实需求的复杂程度,传统的关系型数据库往往不能有效表达现实的需求,为了解决这一矛盾,数据库访问技术引入了面向对象的思想,通过
23、ORM(Object Relational Mapping)陈春玲,朱常宝,严劲. 采用ORM技术的软件开发方法研究J. 计算机与现代化,2006(6):55-57,60.,即对象关系映射的程序技术,将数据库中的二维表转换成“虚拟对象数据”,从而实现对象化数据操作。目前,主流的开发环境和框架均实现ORM技术,PHP的各种主流框架也都有不同实现方式,如YII框架的Active Record和ThinkPHP框架的M方法等。图1.3 ORM模型示意图1.3 LAMP技术介绍LAMP环境即结合Linux操作系统、Apache服务器、MySQL数据库和PHP开发语言的一直网站开发环境。其中,Linux
24、是一个可以运行Unix操作系统的集成环境,同时包括文本编辑器、语言编译器和可视化界面;Apache服务器是一种高性能、跨平台的网站服务器,其优点是代码开源;MySQL数据库是一种速度快、移植性强、适用于多种开发语言、支持多种服务器的开源关系型数据库;PHP是一种在服务器端可编译的脚本语言,结合了C语言、Perl、Java语言的特性。运用LAMP开发网站的主要操作流程是:所有访问服务器的HTTP请求将由Linux操作系统传达给Apache服务器,HTTP请求主要分为静态的请求和动态的请求,其中静态的请求将由Apache服务器处理,而动态的部分将由动态语言进行模块化处理,如果请求包含数据库操作,将
25、由PHP语言通过SQL或者ORM传达给数据库,如下图所示。图1.4 LAMP架构示意图本站采用MAMPMamp Download Center.MAMP & MAMP PRO 3.5(Mac OS X)EB/OL.2016-03-02./en/downloads.集成化环境进行开发,MAMP是运行在Mac系统上的LAMP环境,具有易配置、稳定性强的优点。2. 系统总体设计系统总体设计依据软件工程的流程来进行,即通过需求分析来明确实体间的关系,根据用户体验结合实际开发需求来进行系统的模块设计。2.1 需求分析高校实体间的关系(如图2.1)一般分为学生与学生
26、之间、师生之间、非教职员工和学生之间,实体间的需求包括专业知识的需求、生活知识的需求、教务知识的需求、社交的需求和其他知识的需求。从图中可以看出实体间的关系较为复杂。图2.1高校实体需求关系学生间的需求主要以社交需求为主,包含部分专业知识和生活知识的需求;师生之间的需求是双向的,学生提出的面向教室的问答主要为专业知识的需求,而教师更多的是了解学生对专业知识的掌握程度,以便于调整教学方案;非教职员工(包括了辅导员,学校各部门的员工)则掌握学院学生工作信息,需要对教师的教学任务和效果有一定了解,需要及时了解学生心理、学业、出勤、技能等方面的信息,而学生主要从辅导员处得知教务信息和学生工作信息。基于
27、高校实体关系,本平台提出以“问题”为核心的问答模式,问题本身包括图片和文字两种形式,每个问题会带有一个或多个标签。用户可以提出、解答、评论、分享、点赞、收藏问题,管理员可对用户提出的问题进行审核并进行开启和关闭问题的操作。同时,用户可按发布时间、评论数、点赞数的排序规则查看问题列表。对于提出、回答、收藏、点赞的问题,用户可以在个人中心进行查阅。为了用户能够快速准确定位需求,平台提供检索功能,用户可以根据“问题标题”和“问题标签”对问题进行检索,为了满足用户多元化的信息需求,平台提供多关键词检索,可以通过多标签确定相关问题。为了让非教职员工可以了解学生的各方面信息需求,平台提供标签统计功能,将问
28、题标签量化统计,并在后台加以可视化展示。为了满足学生的专业知识需求,平台提供推荐机制。用户提出问题时,平台将回答相关问题数量较多,或者关注相关问题的用户推荐给提问者,方便其尽快得到专业的解答。为了平台信息可靠性、准确性,平台设置后台管理模块,后台管理包括问题管理、标签管理、用户管理等功能。为了让学校能了解学生和教师的需求,平台围绕问题提供了多维度的图形化统计分析的功能。2.2 系统模块设计系统模块设计将从E-R图、系统模块图和程序流程图分解需求,E-R图主要展示实体属性和实体关系,系统模块图分析功能结构,流程图展示系统逻辑分支。2.2.1 E-R图图2.2系统E-R图2.2.2 系统模块图图2
29、.3 系统模块图从系统模块图2.3可以看出,系统分前台和后台管理。前台主要实现基于问题的与用户交互相关的操作,运用bootstrap模板陈涛. 基于AngularJS和Bootstrap聊天室的设计与实现J. 电脑知识与技术,2015(9):91-92,95.,保证界面的美观和交互的流畅。后台主要为面向数据库和统计的操作,保证前台内容的准确性,并提供一定程度的舆情分析功能。2.2.3 流程图a. 提问流程图提问流程图2.4说明了从搜索问题到提出问题再到解决问题的流程,系统提供四个分支作为判断,为用户多角度提出需求、解决需求提供便利。图2.4提问流程图b. 问题操作流程图问题操作流程图2.5说明
30、了用户对问题可以进行的操作,包括回答、评论、收藏、点赞和在个人中心查看的功能,系统已用户和问题为核心,多种问题操作体现了系统的功能全面。图2.5问题操作流程图2.3 数据库设计平台采用MySQL关系型数据库,并选用“Navicat For MySQL”数据库管理软件Softonic.Navicat For MySQL 11.0.18EB/OL.2016-02-12.进行数据库开发。数据表结构设计如下所示:图2.6数据库关系图回答表记录用户对问题的回答,与问题表是一对多的关系,表示一个问题有多个答案,主键为answer_id。表2.2 回答表字段名称数据类型备注answer_idint(11)回
31、答IDquestion_idint(11)回答的问题IDcontenttext回答内容user_idint(11)回答者IDpraiseint(11)点赞数opposeint(11)反对数created_datedatetime回答创建日期modified_datedatetime回答修改日期deletedint(11)是否删除收藏表记录用户收藏问题的信息,是用户表和问题表的关联表之一,主键为collection_id。表2.3收藏表字段名称数据类型备注collection_idint(11)收藏IDuser_idint(11)收藏者IDrelated_idint(11)收藏问题IDcreat
32、ed_datedatetime创建日期评论表有评论问题的id和被评论id,构成了评论“评论”的功能和评论问题的功能,主键为comment_id。表2.4 评论表字段名称数据类型备注comment_idint(11)评论IDmajor_related_idint(11)问题IDrelated_idint(11)评论对象ID,可为问题和其他评论user_idint(11)评论者IDcontenttext评论内容praiseint(11)点赞数created_datedatetime创建时间deletedint(11)是否删除会话表是用来采集操作的id,通过创建时间和自增的id区分每一个操作的id,
33、保证每个操作的id不相同,以便用related_id来取得关联关系。表2.5 会话表字段名称数据类型备注idint(11)会话IDcreated_timedatetime创建时间图像表保存每一个动作和问题涉及到的图像,主键为image_id。表2.6 图像表字段名称数据类型备注image_idint(11)图像IDrelated_idint(11)关联IDimagevarchar(255)图像地址点赞表是用户表和问题表、回答表的关联表之一,点赞表记录了用户对某个帖子或者问题进行点赞的行为,主键为praise_id。表2.7点赞表字段名称数据类型备注praise_idint(11)点赞IDrel
34、ated_idint(11)关联IDuser_idint(11)点赞者ID问题的添加有两种方式,一种是用户在前台提出问题,另一种是管理员在后台添加问题;每一个问题的提出都要通过管理员的审核才能在前台显示,open字段保证了问题的开启与否,只有管理员在后台才能开启或者关闭问题。同时,提问涉及匿名提问,通过anonymous字段实现。主键为:question_id。表2.8 问题表字段名称数据类型备注question_idint(11)问题IDuser_idint(11)提问者IDanonymousint(11)是否匿名titlevarchar(255)问题标题contenttext问题内容pra
35、iseint(11)点赞数opposeint(11)反对数created_datedatetime问题创建时间modified_datedatetime问题修改时间academy_idint(11)学院IDopentinyint(1)问题是否开启deletetinyint(1)是否删除问题标签表是问题表和标签表的关联表,一个问题可以有多个标签,一个标签也可以被多个问题使用,主键为question_tag_id。表2.9问题标签表字段名称数据类型备注question_tag_idint(11)主键IDquestion_idint(11)问题IDtag_idint(11)标签ID引用表记录了回答引
36、用了其他的问题、答案,通过related_id进行关联,主键为quote_id。表2.10 引用表字段名称数据类型备注quote_idint(11)引用IDanswer_idint(11)回答IDrelated_idint(11)相关IDcreated_datedatetime创建时间标签表是存储标签的数据表,主键为tag_id。表2.11标签表字段名称数据类型备注tag_idint(11)标签IDnamevarchar标签名字created_datedatetime创建时间modified_datedatetime修改时间typetinyint(1)类型deletedtinyint(1)是否
37、删除用户表记录了用户的基本信息,平台用户分为学生、教师和管理员,根据type来进行区分,同时,如果有用户违禁,管理员可以禁止其使用账户,通过state字段实现,主键为user_id。表2.12 用户表字段名称数据类型备注user_idint(11)用户IDnamevarchar用户姓名passwordvarchar密码sexvarchar性别homevarchar家乡birthdate生日gradeint(11)年级classvarchar(255)班级typetinyint(1)0:学生;1:教师;2:管理员academy_idint(11)学院IDstatetinyint(1)0:关闭;1
38、:开启imagevarchar(255)头像地址created_datedatetime创建时间deletedtinyint(1)是否删除用户兴趣表是用户表和标签表的关联表,通过用户兴趣表可以存储某个用户的某个兴趣的标签,主键是user_tag_id。表2.13用户兴趣表字段名称数据类型备注user_tag_idint(11)用户兴趣IDuser_idint(11)用户IDtag_idint(11)标签ID学院表用于存放学院信息。表2.14学院表字段名称数据类型备注academy_idint(11)学院IDnamevarchar(255)学院名字3. 系统详细设计系统详细设计从功能的角度介绍了
39、系统的实现,从网站基本功能、网站高级功能和网站部署上线三个方面进行阐述。3.1 网站基本功能设计3.1.1 登录功能登录功能采用用户名和密码登录,登录成功后将跳转系统主页。登录功能包括前台和后台的登录。图3.1前台登录界面图3.2后台登录界面图3.3 登录跳转主页实现代码:public function checkLogin() $user = $_POSTuser;$password = $_POSTpassword;$res = M(user)-where(name=.$user.)-select();if($res & $res0password = $password) $user_i
40、d = (int)$res0user_id; session(user_id,$user_id); session(name,$user);$this-success(登录成功,index);else$this-error(登录失败);3.1.2 注册功能注册功能需要用户填写姓名、密码、性别、学号、专业和兴趣,其中,密码确认采用前端JQuery实现,所有信息不能为空,网站所有表单都会做非空检验。图3.4注册界面实现代码: public function reg() if($_GETname) $arname = $_GETname; $argrade = $_GETgrade; $arclas
41、s = $_GETclass; $arsex = $_GETsex; $arstudentId = $_GETsid; $arpassword = $_GETpassword; $user_id = M(user)-add($ar); if(isset($_GETxq) & $_GETxq) if(strpos($_GETxq, ) $tags = explode( , $_GETxq); else $tags = array($_GETxq); foreach ($tags as $key = $tag) $res = M(tag)-where(name=$tag)-select(); if
42、($res) $tag_id = $res0tag_id; else $tag_id = M(tag)-add(array(name=$tag); M(user_tag)-add(array(user_id=$user_id,tag_id=$tag_id); $this-success(注册成功!,./index/login); $this-display(); 密码验证实现:function onBl() if($(#pwd).val().trim()!= $(#repwd).val().trim() $(#hd1).val(a); $(#lb1).html(密码不一致!); else $(
43、#hd1).val(); $(#lb1).html(); 表单非空验证实现:function check() if($(#name).val()=) alert(姓名不能为空!); return false; if($(#pwd).val()= | $(#repwd).val()=) alert(密码不能为空!); return false; if($(#hd1).val()=a) alert(密码不一致!); return false; if($(#grade).val()=) alert(年级不能为空!); return false; if($(#sid).val()=) alert(学号
44、不能为空!); return false; if($(#class).val()=) alert(专业不能为空!); return false; return true; 3.1.3 提问功能提问功能需要填写问题的名称、问题的内容和问题的标签,三者都会做非空检验,当问题提交成功之后,需管理员审核通过之后才能上线。图3.5 提问界面实现代码:public function ask()if(isset($_POSTtitle)$Conversion = D(Conversion, Model);$dataquestion_id = $Conversion-getId();$datatitle =
45、$_POSTtitle; $datauser_id = session(user_id); if(!isset($datauser_id)$datauser_id = 2; $datacontent = $_POSTcontent; $datacreated_date = date(Y-m-d H:i:s); $datamodified_date = date(Y-m-d H:i:s);if ($_FILESimagetmp_name) $info = $this-upload();$dataimage = $this-view_path.$infosavepath.$infosavename
46、;if(isset($_POSTtags) & $_POSTtags)if(strpos($_POSTtags, )$tags = explode( , $_POSTtags);else$tags = array($_POSTtags);foreach ($tags as $key = $tag) $res = M(tag)-where(name=$tag)-select();if($res)$tag_id = $res0tag_id;else$tag_id = M(tag)-add(array(name=$tag);M(question_tag)-add(array(question_id=
47、$dataquestion_id,tag_id=$tag_id);$question = M(question)-add($data);$this-success(问题添加成功,U(./home/question/articles_list);$user_id=session(user_id);$user_id = isset($user_id)?$user_id:2;$user_res = M(user)-where(user_id=.$user_id)-select();$arruser = $user_res0;$this-assign($arr);$this-display();3.1
48、.4 问题搜索功能问题搜索功能包括标题搜索和标签上搜索,提供多关键词搜索,效果如下:图3.6搜索功能实现代码:if(isset($_GETtitle) & $_GETtitle) $title = $_GETtitle;$title = $this-cleanXss($title);$arrflag = $title;if(strpos($title,;)$tags = explode(;, $title);foreach ($tags as $key = $value) $where .= and exists(select from la_question_tag qt left join la_tag t on qt.tag_id=t.tag_id where qt.question_id=q.question_id and like %$value%) ;elseif(strpos($title,;)$tags = explode(;, $title);foreach ($tags as $key = $value) $where .= and exists(select from la_
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 护理管理沟通中的冲突解决技巧
- 2025年前台服务冲刺试卷
- 2026年合同能源管理与节能环保服务在制造业中的应用
- 2026年深度学习在非侵入式脑机接口神经信号解码中应用指南
- 2026年生物质能“十五五”多元化高价值发展新方向解读
- 管廊防水施工方案
- 皮内注射的过敏试验操作
- 2026年消防演练安全培训
- 2026年消防安全知识普及
- 投资监理技术方法
- 2026西藏自治区救灾物资储备中心招聘4人(编外)笔试参考题库及答案解析
- 学校内部控制六大业务工作职责及岗位职责说明书
- 2026年“强村公司”组建运营:公司化运作的治理结构与盈利模式
- 泰国本土教师初级汉语课堂纠错反馈研究-以罗勇府格灵中学为例
- 2026年北京市延庆区高三下学期一模政治试卷和答案
- 2026年3月广东广州市白云区人民政府鹤龙街道办事处招聘就业见习岗位人员10人考试参考试题及答案解析
- XX中学2026年春季学期教研组校级公开课(示范课)安排及听课要求
- 2026人教版数学三年级下册全册教学课件
- 2025宣城广德市国有资产投资经营有限公司第二批招聘笔试参考题库附带答案详解
- 新版北师版三年级下册数学全册教案(完整版)教学设计含教学反思
- TB 10811-2024 铁路基本建设工程设计概(预)算费用定额
评论
0/150
提交评论