《南京邮电大学.docx》由会员分享,可在线阅读,更多相关《南京邮电大学.docx(15页珍藏版)》请在三一办公上搜索。
1、课程设计报告课 程 名:课程设计II-网站设计与开发网站题目:网上机票订购系统:专 业:信息管理与信息系统学号:姓名:成绩:2016/2017学年第2学期南京邮电大学管理学院指导教师成绩评定表题 目网上机票订购系统学生姓名学号专业信息管理与信息系统评分内容评分标准总分评分平时成绩10%认真对待课程设计,遵守实验室规定, 上机不迟到早退,不做和设计无关的 事。10设计内容30%数据设计是否完整、合理10流程设计是否全面、深入10界面设计是否美观易用10文档写作20%文档内容是否完整、逻辑清晰10文档格式是否符合要求10系统运行40%运行效果20现场问题的回答20总评分其他问题成绩指导教师签名洪小
2、娟日期2017.7.6一、需求分析网上机票订购系统该网上机票订购系统的核心功能是提供网上机票订购业务。用户需求分析用户最基本需求就是查询到合适目的地、合适起飞时间的机票信息,并且能够下 订单,下完订单后能够查到已经订购的机票的订单信息。如果用户需要改变行程 可以删除订单,然后重新下订单。用户还有注册帐号,填写个人信息的需求,这样才能把用户与机票信息相匹配, 生成机票订单。二、系统设计数据库设计:数据库名为shop用户信息表(表名:users)主要储存用户帐号、密码和其他一些基本信息。I Field1 ype1 Mull1 Key1 Default Extra |userID pas-s-wor
3、d Real Name sex 曲QQ41varcharefaulr |1 Exrra |Airiooeparcurepl aee oesii nail-on DepariureTlme Landi pri avar char (1-0) varcharfiO) varchar(16) varchar(16) Time linte irrt(ll)NO YES YES YES resYES YESr *-PKINULLNULLNULLNULLNULLNULL图2-2 filght表属性订单信息表(表名:orders)OrderlD为订单号,设置为自增属性,储存航班号、 用户ID、总价格、起飞日
4、期等信息。Eld |卜一一一一一41 Typef Hi| Null-.L .fT一,一一一一一3b11 DefaulT1 ExtraQrderlD Mrro uierro priceint(ll) archar(io) archarfiO)_L 中J 1 NGNONOYES| VESLIFRINULLNULLNULLnuLLNULLautoincrefflerrt图2-3 orders表属性功能设计:用户登录功能:没有注册的用户需要注册,填写一些个人信息,然后记录到数据 库中。用户密码修改功能,用在修改密码时需要先输入原密码,才能输入新的密码,原 密码不对无法修改。机票查询功能,用户可以查询到
5、所有航班信息,也可以通过搜索航班号,目的地, 起飞时间来查询特定的航班信息。机票订购功能,在输入航班日期后会生成预览订单,提交后才会产生真正的订单, 才能在订单页面看得到。订单查询和删除功能,在这个页面,用户可以查到自己的订单。如果用户行程有 变,可以删除订单。网站架构:网站的架构我主要做了前端机票展示和订购的机票部分,有以下模块组成。如下 图用 户 登 录 与 注 册浏 览 机 票 信 息生 成 机 票 订 单查 看 订 单 信 息网站流程图:是否有账号登录注册开始结束注册查看机票订购机票查看订单网上机票订购系统网站物理设计:网页内容存放在服务器端,用户信息、航班信息、订单信息存放在MySQ
6、L 数据库中,用户请求时服务器在从数据库中调出数据给用户。三、系统实现开发环境:在虚拟机上搭建的Linux+Nginx+PHP+MySQL环境。开发工具: Adobe Dreamweaver cc 2017开发环境配置:在linux系统上安装ftp服务器vsftpd,Winndows上Dreamweave通过配置ftp的方式连接nginx服务器。如下图:(ftp地址为虚拟机IP地址)图3-1 Hp连接配置编程实现:(主要使用php语言)odbc_connection.php这是数据库连接的php代码,其中shop为数据库名。login.php?phpinclude ./odbc_connect
7、ion.php;if($_POSTUserId)&($_POSTPassword) ($str=mysql_query(select UserID FROM users Where UserID=$_POSTUserId And Password=$_POSTPassword);if($result = mysql_fetch_array($str) ($_SESSIONUserId=$resultUserID;mysql_close($con);?php else echo alert(对不起,用户名或密码错误! ); ?用户登录用户名haba*密码* 中图 3-2 login.php表单代
8、码省略,这段php代码主要用于判断用户登录帐号和密码是否与数据库相 匹配,如果匹配,把帐号写入$_SESSIONUserId中再跳转到首页filght.php。reg.php?phpinclude ./odbc_connection.php;$userid=$_POSTUserId;$exit_flag=0;if($userid) (if (strlen($userid)20) ($strtemp=用户名必须大于4位小于20位”;$exit_flag=1;$strSql=mysql_query(select UserId FROM users WhereUserId=$userid);if($
9、result = mysql_fetch_array($strSql) ($strtemp=已有人使用该用户;$exit_flag=1;if($exit_flag=0)$sql=INSERTINTOusers(UserID,Password,RealName,Sex,Tel,Email,QQ)VALUES($_POSTUserId,$_POSTpassword,$_POSTrealname,$_POSTsex,$_POST tel,$_POSTemail,$_POSTQQ)”;mysql_query($sql);?phpmysql_close($con); elseecho alert(提示:
10、$strtemp,请重新填写! ); ?用尸注增清略注册嬉息用户名.-大亍或等于W位,小于,知)密码1*1*真箕姓名微顾夷女龟话|+置号四喘定图 3-3 reg.php表单代码同样省略,上面php代码主要用于判断用户名长度大于4位小于20位, 并且不能重复,如果满足条件则会执行插入语句,把用户数据插入数据库。插入 成功后会跳转到注册成功页面reg-ok.php,内容很简单就不放出来了。Filght.php?php include ./odbc_connection.php;$strSql=mysql_query(select Sex FROM users Where UserID=$_SESS
11、IONUserId);$result=mysql_fetch_array($strSql);if($resultSex=female)echo ; elseecho ;?F曲L F值w&nl Aampr Sats Flights皮皮航空皮皮航空公司简介用户由:hahsp/p /4 iLi十必公司logo览阪*IE降右阪公司(Pipi Airlines简称茹)慈睥在南京,以二 色垂亘匡期函色大心为就司标志,是口国晅输飞机号觎 舲祸熟 达一年喜的航空会划.瓢N运SS堂浒A.世界M三;机阳S棋号酬京一世界M四.S 芸贫本同时瓯安莒M8前蓝音T87她查公司.昌中国SH8M寡.戏 成网率最座里.年寄运昼
12、墨太航*公司.!_;. designed bv膈而Models provided byh hHi-i图 3-4 filght.php页面布局参考了网站设计课本代码,参杂了其他网站的内容,做的还是比较丑, 就不放出来了。上面的php代码主要是通过读取登陆界面存入的$_SESSION来 获得登录用户的用户名,同时也从数据库读出用户的性别信息,并判断输出的图 片是男性还是女性。book.phpform name=form2 method=post action= 搜索 机票 航班号:目 的地:INPUT size=6 name=destination type=inputbox class=inpu
13、tbox 起飞时间: ?php echo .$rowAirID.; ? ?php echo .$rowDeparturetime. ”.$rowLandingtime.”;?php echo .$rowDepartureplace.$rowAirclass. ”.$rowDestination.”; ?价格: 日期: 月 日 input name=hide type=hidden value=?php else ($flag=0;$p=0;$str=SELECT * FROM filght ;if($_POSTAirid)($str=$str.wh
14、ere AirID=$_POSTAirid;$p=1;$flag=1;if($_POSTdestination)(if($flag=1)$str=$str.and Destination=$_POSTdestination;else ($str=$str. where Destination=$_POSTdestination;$flag=1;else$flag=0;if($_POSTdeparturetime)(if($flag=1) | ($p=1)$str=$str.and Departuretime=$_POSTdepartureptime;else$str=$str.where De
15、parturetime=$_POSTdeparturetime;$str=$str.Order By Departuretime Asc;$result = mysql_query($str);while($row = mysql_fetch_array($result) ?php echo .$rowAirID.”; ? ?php echo ”.$rowDeparturetime. ”.$rowLandingtime.”;?php echo ”.$rowDepartureplace.”.$rowAirclass.”.$rowDestination.”; ?价格: 日期:
16、 月 日 input name=hide type=hidden value= 图 3-5 book.php图3-6左图搜索结果显示Book.php页面的内容为整个机票订购网站的核心内容,主要用于显示航班信息。 form2表单为搜索机票部分的表单,form1表单参杂在用作显示航班信息的php 代码中,主要用于输入日期信息,用隐藏表单传递航班号。上图中大段php代码 主要分为两种情况输出,一是搜索框有内容的输出查询;二是搜索框为空时,输 出所有航班信息。preview-order.php第一部分 您的nr单信息如下:曾名Jazk电话1珀却38438E-maj r3354t
17、i9S22!gqq.cara.订单日朗20!7-07-0-2:割电a汀茧卯号日期出甄地目取地出握明间到达同同65JD3O0T目汨n:i叫1叩口低阪0。09:3回图 3-7 preview-order.php该页面主要显示下订单后预览订单信息,并生成订单。第一部分主要用于获取图 3-7上半部分用户信息;第二部分主要显示航班信息、总价格,并且生成订单(订 单号在数据库中自增);第三部分主要用于判断用户如果放弃订单,则会执行删 除代码删除已经生成的订单并返回book.php。Order.phpif($_POSTsubmit=删除订单”)($del=delete from orders where O
18、rderID=.$_POSTHideAirid.;mysql_query($del);echo alert(订单删除成功! ); 图3-8 order.php图3-9删除订单成功的提示此页面主要用于展示用户的所有订单,显示订单的代码和book.php差别不大, 就是隐藏表单传递的值是OrderlD给上面的删除订单代码,让用户能删除指定的 订单。Updatepw.php?phpinclude ./odbc_connection.php;if($_POSTopasswd)&($_POSTnpasswd) ($str=mysql_query(select * FROM users WhereUser
19、ID=$_SESSIONUserId And Password=$_POSTopasswd);if($result = mysql_fetch_array($str) ($str1=update users set Password=$_POSTnpasswd where UserID=$_SESSIONUserId;mysql_query($str1);mysql_close($con);echo alert(密码修改成功,点击确定返回首页! );? ?php else (echo alert(对不起,原密码错误! );?图 3-10 updatepw.php此页面用来修改密码,html语言
20、与登录页面相似,php代码不同,先需要验证原 密码,原密码错误不能修改,并弹出错误提示。Out.php次代码用来注销用户,会删除$_SESSIONUserId,然后跳转login.php。编程错误及解决方法问题一:Dreamwear用ftp方式连接不上linux服务器版务普客际:/FTPA以下-翊0我;图3-11 ftp连接错误 Linux系统的iptables阻挡了端口连接。解决方案:使用service iptables stop 关闭防火墙就好了; 使用root用户登录linux系统时,vsftpd目录下记录有禁止连接ftp帐号的文 件ftpusers中有root用户。解决方案:打开/et
21、c/vsftpd/ftpusers,删除root即 可。 连接时还会提示出现未知错误,可能是selinux未关闭。解决方案:使用 setenforce 0 临时关闭 selinux 即可;以上就是我在用dreamweave连接linux系统出现过的问题,我都是通过百 度和自己摸索得出解决方案。问题二:使用php的SESSION报错(上方黑体字部分)图3-12 session使用不当错误原因是在使用session_start();时前面还有值输出,在通过查看源代码时 发现在创建 php 文件时 Dreamwear自动添加的在 之前,所以只要把删除即可。ianiiiBB: seas01 .Cnix
22、iDt und basslimd culn liniter - baodarE ilraacy lanl :cci-p-T it Lif: ?ti rrjinrjip:,appJ icatint/inzinx/blnl/EliDp/lDRin. pJip -sc li nv 3用户名*问题三:SQL查询语句出错及其他问题您的订单信息如F:姓咎 12电话 12京12Her耕ng: ilawO ; It- is iwi to xely on The sysTeas祯缶 You aie *iRuLred* m u巽 iti claw. Time蹄iw1T5L0 muting The 4aT*_der
23、suli_Tla&EOne_s&T() riTncTioiL In. taseui&d any or Those ewmcd号 and you are sriLl 戡uLm Thia明ycu DjcsK LiJciaLy EiisspAlLisd xha i aaz-mu id.4XiLLf i ax. Wa salTAd iLa t inNZ-aiiA LTCB f-at tr, bux plwasa saidate, rinPEcnF to aelcct ywjr t imeEOTiCi in 7?qjplitidi/iiB.inK/hrtBlX5hiop/jrfl-aw-Qird.er
24、php on llnr 30 却miS&riin?- B/sq L_reich.arra? () WEpecs:日 ps宣睥th L te reac-urce. iiesn given in ?rppl icB-Tien/niiK/hiiil/Elwp/panevi w-orr. php asIjHA 瞄订补.期I订单编号航诚号.鞘 出发地 目的地出发时问到却m1月1日.总脂指阔加四元嫩瑾避方铀ni 如图 3-13 preview-order.php 的各种问题订单日期的错误是因为php.ini中默认设置格林威治时间,而我系统的时间 匹配的是亚洲/上海时间,所以报错。解决方案:在开头设置php
25、时区为上海时 区,如下 ini_set(date.timezone,Asia/Shanghai);下面一条错误是提示我的SQL查询语句有误,再仔细1检查我的查询语句 后发现,由于自己粗心,英文逗号敲成了中文,所以语法出错。由于我初学php语言,每新编写一个php页面都出现过许多小的php语法错 误,篇幅关系就不一一举例了。四、实践收获和心得体会通过几天的努力,终于完成这个简单的网上机票订购系统编写。其实,我在 此之前没用过php语言,而我之所以选择使用php语言编写,主要是因为之前一 段时间学习linux系统,在虚拟机上搭好php所需要的环境,再加上自己也想学 一些php知识,所以就选择使用p
26、hp语言搭建动态网页。我此次设计并编写的网上机票订购系统,主要给用户提供机票的查询和订购 功能,我主要做了用户需要使用的功能,管理员功能待开发。系统的运行环境是 linux+ngin+mysql+php,网站的编写使用 Dreamweaver2017。由于我是初学php,基本上没编写一个网页都会遇到php语法错误;php参 数书写的格式不对,导致获取不了表单的信息;还有遇到一些逻辑错误,比如说 搜索机票功能搜索不了特定的航班信息,删除订单需要点击两次,都是我在编写 时遇到的逻辑错误。我在遇到php语法和php参数书写格式错误时,是通过百度 其他人写的php代码作为参考,对比自己的代码,找出问题所在。在遇到逻辑错 误时就检查自己的if判断语句,看看是不是有括号没加问题等。通过此次的课程设计,让我对温习以前学习网站设计,数据库的等知识,学 到了一点php编程知识,学会了使用Dreamwear编写网站,获益匪浅,让我对网 站设计有了更深的认识。