基于Apache+PHP+MySQL的C语言学习系统的实现

2016-05-30 10:48汪桂珍
科技资讯 2016年15期

汪桂珍

摘 要:针对江苏宿迁中等专业学校学生学习C语言存在教学资源、网络学习资源整合需求,为学生提供课余C语言学习与交流平台,提出开发基于Apache+PHP+MySQL框架的C语言在线学习系统。根据教师和学生需求介绍了该系统模块设计与数据库设计,并着重阐述了该系统实现的几个关键技术。开发和运行实践结果表明,这些技术在WEB开发中具有一定的通用性,简单而又实用,具有实践意义。

关键词:Apache PHP MySQL B/S 在线学习系统

中图分类号:TP31 文献标识码:A 文章编号:1672-3791(2016)05(c)-0001-05

Abstract: For students in our school learning C language network teaching resources, learning needs to integrate resources, in order to provide after-school C language learning and communication platform, put forward development based on Apache +PHP+MySQL framework C language online learning system. According to the requirements of teachers and students, the system module design and database design are introduced, and some key technologies of the system are discussed emphatically. Development and operation of the results show that these technologies in the development of WEB has a certain universal, simple and practical, with practical significance.

Key Words: Apache; PHP; MySQL; B/S; Online learning system

对于中职生而言,C语言是一门令他们惧怕的课程,从该校历年C语言的教学效果来看,每个班只有寥寥数人能将C语言学好。课堂学习是C语言学习的重要阵地,而课后的学习拓展也不可或缺。学生在课后巩固知识、疑难解惑,必须要有学习资源,光教材是远远不够的,而网络上的众多学习资源并不适用于中职学生,也不能与教学进度相适应。

为了丰富学生C语言知识的课余阅读,并将课余阅读与课堂内容紧密结合,既能使学生巩固课堂内容,又能激发学生的C语言学习兴趣,设计开发以该校C语言教学为背景的C语言在线学习系统,该系统以Apache、PHP、MySQL为框架进行设计和开发。

1 系统体系结构与开发环境

1.1 系统体系结构

系统采用流行的B/S结构,B/S结构具有分布性特点,通过URL地址,客户就可以进行浏览,只要有浏览器即可;功能扩展简单方便,增加网页就可以增加系统功能;B/S结构已成为网络软件开发普遍使用的基本架构[1]。

系统中的Apache Web服务器、PHP应用服务器、MySQL数据库安装在同一台计算机上。图1为该系统体系结构图。

当然,如果用户访问的页面没有PHP代码,web服务器直接将页面展现在客户的浏览器中。

1.2 开发环境

系统使用HTML5+CSS3构建前端网页,前端脚本使用JavaScript,使用Apache为WEB服务器,服务端使用PHP编程,数据库使用MySQL。

开发平台操作系统为Win10,开发工具为:AppServ 8、Dreamweaver CS6,AppServ 8.集成了Apache Web服务器,PHP 5、PHP 7应用程序服务器,数据库为MySQL5,系统使用的开发技术为HTML5、CSS3、PHP、AJAX、JavaScript,客户端浏览器为Internet Exporer 8或更高版本。

2 模块设计

系统实现的主要功能为学生的注册、登录,浏览文章,并在浏览文章下方留言,提出疑问;教师注册,进入教师后台,在后台添加(上传)文章、修改文章和删除文章;管理员通过特定的页面进入后台,可以审核教师账号,添加其他网站优秀的文章供学生阅读,扩大视野。

根据系统需求分析,系统分为若干模块开发:主页页面规划布局、注册登录模块、教师文章管理模块、文章列表区模块、文章显示模块、留言模块、搜索模块、管理员后台管理模块。

主页页面规划如图2所示,logo区、菜单区、搜索区是固定的。而文章列表区则需要搜索数据库文章表,登录区则根据用户是否登录,若未登录显示登录表单,若已登录则显示某某已登录,链接文章区也是需要搜索数据库中的连接文章表,因此,文章列表区、登录区、链接文章区需要PHP脚本实现。

教师文章管理模块,教师通过首页的登录入口,进入登录页面,输入教师姓名和密码进入教师后台管理页面,在教师后台管理页面教师可以添加文章,修改、删除文章以及退出。在添加文章页面,需要教师选择文章分类,输入文章标题及文章作者,教师可以在线编辑文章,为了使编辑所见即所得,使用ckeditor编辑,ckeditor支持常用的字体、段落设置,可以链接图片、FLASH,完全满足网页文章编辑需要,如图3所示。

在主页的文章列表区,浏览者可以单击文章标题,文章标题超级链接跳转时通过get方式传送文章编号给文章显示模块view.php,view.php接收到文章编号,按照文章编号搜索文章数据表,显示文章相应信息。

在文章的下方,是留言区,浏览者登录后,在文本框中输入评论内容,点击发布,不需要刷新整个页面即可显示留言,为了实现局部刷新,留言部分使用AJAX+PHP技术实现,搜索功能同样使用AJAX+PHP技术实现[3]。

管理员后台管理主要是审核教师账号和添加链接文章。

3 数据库设计

通过对C语言在线学习系统需求分析,建立系统数据库cstudydb,包括管理员信息表,学生信息表,教师信息表,文章信息表,资源信息表,留言信息表,链接文章信息表等等。其中文章信息表和资源信息表是1∶n的关系。文章信息表和留言信息表是1∶n关系。

4 关键技术的实现

4.1 HTM5+CSS3页面布局与美化

B/S体系结构的系统,不仅要实现功能,更要关注浏览者的浏览体验,即既要做到页面美观、大方,又要实现既定的功能。

HTML标准从HTML4到XHTML再向HTML5过渡,HTML5是为今天的多媒体互联网而生的,因此它提供了一整套API,支持视频、音频、图形、地理定位、数据存储等等。HTML5还为结构化文档提供了很多新的元素如section、article、nav、header、aside、footer等等,而在此之前,没有语义的div外加标识性的类名和ID,曾经顶替过这些新元素的角色。

HTML负责构建内容,CSS则负责内容的显示美化。经过长久的等待,如今,终于可以使用CSS3的新功能了,诸如渐变、过渡、变换、阴影、圆角等等,各种人性化的结构化伪类更是让大家不断惊喜。

完成的界面如图4所示,整个网站的显示都是同一个主题。

页面中用到了CSS3的圆角边框、阴影,使页面更美观、立体,圆角边框的代码为“border-radius:10px 0px 10px 0px;”,阴影的代码为“box-shadow:0 12px 8px -9px #555;”,另外还使用了CSS3中的特殊的上下文选择符如紧邻同胞选择符“+”,结构化伪类before,属性值选择符,UI伪类等。

如:.search input: focus{ width:140px;}实现搜索框input当获得焦点时宽度变为140px,该input原来的宽度是70px,当单击该input时,就宽度增加,使用户体验更美妙。

4.2 数据库连接

数据库连接使用PDO技术实现,PDO是一个数据库访问接口,不同数据库的访问只要遵循接口规范即可,屏蔽了不同数据库访问的差异性,因此能够简单、迅速地切换不同数据库,使得数据库间的移植容易实现[4]。只要发生数据的存取,就需要连接数据库,因此,将数据库连接代码写在一个文件中,如果以后需要使用这段代码,只要使用require语句包含即可。

4.3 页面之间的信息传递

在文章列表区,单击文章后即可调用文章显示模块显示数据库中的文章,在教师后台中,单击需要修改、删除文章,即可完成对指定文章的修改和删除工作,因此需要在不同的页面之间传递信息,该系统使用get方式,将需要显示、修改和删除文章的文章编号传递给下一个处理模块,如:

在处理模块使用$artid=$_GET['artid'];获取文章编号,使用文章编号查询文章数据表,获取文章的其他信息。

4.4 局部刷新技术

在留言页面,当用户输入留言内容点击发布即可显示留言内容,不需要刷新整个页面;在搜索表单里输入关键字,即可在下方显示符合关键字的文章,同样不需要刷新整个页面,为了实现这种良好用户体验的局部刷新技术,该系统中使用AJAX技术实现。

在系统留言页面,当单击“发布”时,执行liuyan()函数:";

搜索表单文本框:,同样适用AJAX技术实现局部刷新,首先进行XmlHttpRequest初始化,获取表单中的关键字,使用POST方式传送给搜索脚本search.php,该脚本将关键字提取后,搜索所有文章表中的文章,将文章中的内容与关键字进行匹配,若找到,则将文章信息在name为searchresult的div中显示。

5 系统安全处理

该系统中有3种用户,学生用户、教师用户、管理员。学生用户主要是浏览文章和留言;教师用户则有添加、修改和删除文章的权利,因此要对教师用户进行严格的审核,当教师注册后由管理员审核通过才能登录系统,管理员用户的后台登录通过特定的页面才能进入,在主页中并没有管理员登录入口,提高系统安全性。

另外为了防止未授权用户绕过登录页面进入后台页面,在该系统中使用SESSION实现用户验证,在登录页面,当指定用户名的密码与用户表中的密码一致则注册SESSION。

在需要验证用户的页面开启SESSION,首先判断$_SESSION["username"]及$_SESSION["islogin"]是否为真,若为真则已登录,否则跳转到登录页面。

6 结语

基于Apache+PHP+MySQL框架的C语言在线系统,通过教师对网站文章的管理,使学生课余学习资源更适合中职学生,内容也更有针对性,同时,也方便链接其他网站技术文章拓宽视野,是教师课堂的延伸,是学生重要的学习资源。

参考文献

[1] 陶天鸣,陈光.基于组件及Web技术的蜂窝移动通信虚拟实验方案设计[J].计算机时代,2010(9):18-19.

[2] 王凤玲.基于PHP_MYSQL的新闻发布系统的研究与实现[J].计算机应用与软件,2012(2):234-236.

[3] 元谋人.AJax_实现类似百度搜索栏的功能[EB/OL].[2012-08-20].http://blog.sina.com.cn/s/blog_68b4ec9b01014ihc.html.

[4] ruxingli.PHP中使用PDO[EB/OL].(2012-01-04) http://blog.csdn.net/liruxing1715/article/details/7175527.

[5] 寇令宇.沈阳政研信息网站的设计与实现[D].北京:电子科技大学,2011.