基于PHP的精品课程网站设计与开发
摘要 本文采用php+mysql进行精品课程网站的开发设计,结合web2.0以用户为核心的思想,通过引进ajax技术,实现用户快速答复和使用方便的需求。
关键词 php;mysql数据库;ajax 网站
中图分类号tp393        文献标识码a        文章编号 1674-6708(2011)35-0193-02
0 引言
精品课程教学资源网站的建设承担着重要的教学信息化示范作用,可为教学手段的改进、教学质量的提升等带来巨大的促进。目前,国内外实现动态可交互的网站技术有很多,比较常用的有asp,jsp和php等。asp可移植性较差,并且解释执行效率不高;jsp虽然功能强大,但其技术特点决定了它在企业级应用的优势;php跟html具有良好的兼容性,用户可以在源代码中直接加入html标签[1]。因此,本文采用php技术设计站点。
本文结合web2.0的相关思想,用php进行动态网站开发,采用zend平台,基于mysql[2]数据库
系统,结合精品课程网站的特点,构建用户信息注册登陆,成绩录入查询及统计,作业发布,文件上传,在线答疑,图片展示,页面信息维护等功能。
1 实现技术
php是一种 html内嵌式的语言,嵌入html文档在服务器端执行的脚本语言,语言的风格类似于c语言,现在被众多的网站编程人员广泛的运用。mysql由于体积小、速度快、总体拥有成本低,并且开放源代码,成为中小型企业网站为降低成本的首选数据库。ajax是web 2.0的一种可选的增强技术,它让通信异步进行而不刷新页面,其快速灵敏的页面响应效果,符合用户求快的心理和使用方便的需求。
本系统在zend studio统一开发环境下开发,它包括了php所有必须的开发部件。通过一整套编辑、调试、分析、优化和数据库工具;zend studio加速了开发周期,并简化了复杂的应用方案。
2 总体设计
精品课程站点模块分为:用户、作业上传下载、在线答疑、页面信息维护和教师管理五个部
分。针对如上功能,设计了数据库er图,如图1。
页面的布局整体框架由div+css构成,这样整个界面风格都保存在一个css文件里,便于修改,然后各个页面由table进行灵活的布局[3]。采用这种布局,使整个界面清晰,简洁并且方便管理。在系统的使用和操作的功能上,有管理者和普通注册用户两种类型,根据用户类型把系统分为前台模块和后台管理模块。为便于整个系统组织管理,采用把各个相对独立的功能独立设计,然后把各个相对独立的数据或功能组织到整个大系统中来。对应于各管理功能模块,几乎都有上传、查询、修改、删除这几项功能,整个业务流程就是由这几种基本功能实现的。
3 详细设计
本文采用php数据库函数进行连接,主要采用:
mysql_connect():建立与mysql服务器的连接。
mysql_select_db ():选择mysql服务器中的数据库进行操作。
mysql_query ():送出sql查询语言以帮助mysql做相关的处理或执行。
mysql_fetch_row ():用来将查询结果result单行移到数组变量中。数组的索引是数字索引,第一个索引值是0。采用该种连接方式,在存取时间上,比通过odbc方式存取耗费小。下面,例举用户、在线答疑和页面信息维护模块简要说明。
3.1 用户模块设计
用户模块包括用户注册,登录等功能。登录后可执行作业上传、在线答疑、成绩查询等操作。未注册用户除了浏览只具备搜索留言权限。由于需要考虑用户名是否添加,采用了ajax无刷新验证,增强了用户体验。而且“按需取数据”,可以最大程度地减少冗余请求和响应对服务器造成的负担。
实现中调用xmlhttprequest对象初始化ajax,当页面调用该实例化函数时将创建一个新的http请求,并指定请求的方法、url以及验证信息,然后在对应的label显示出获取的显示内容,而且页面没有进行过任何刷新。在输入注册用户名的文本框失去焦点的时候,则会自动向服务器发出请求,用户则继续该页面的其他操作,不必等待服务器返回信息。
ajax实例化代码如下:
var xmlhttp = false;
xmlhttp = new activexobject(lhttp);
xmlhttp = new activexobject(lhttp);
if (!xmlhttp && typeof xmlhttprequest != undefined) {
xmlhttp = new xmlhttprequest();
}
function idajax(data){
php调用mysql数据库xmlhttp.open(get,db.php?id=+lementbyid(id).value),true);
xmlhttp.send(null);
adystatechange=function(){
if (4==adystate){
if (200==xmlhttp.status){
lementbyid(idtip).sponsetext;
}else{
alert(发生错误!); }}}}
这种方式适应于页面中任何元素,包括表单等等,其实在应用中,对表单的操作是比较多的,针对表单,更多使用的是post方式。
3.2 在线答疑模块设计
在线答疑模块主要是为方便学生跟老师间的交流和设计的,学生通过此模块留下在学习过程中的一些疑问,由教师进行回复,也可以通过搜索来查看历史问题。教师可以根据学生留言进行回复,也可以对个别留言进行删除。
$message=htmlspecialchars($_post[message]);
$message=nl2br($message);//获取留言
$datastr=date(y-m-d g:i:s);//获取时间
$ip=$_post[ip]; //获取ip

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。