第四章实验2Web服务端脚本编写一实验目的(1)通过上机实践,熟悉Apache服务器的安装和配置使用方法。(2)掌握PHP脚本语言,熟练运用PHP语言进行服务器端编程。二实验环境硬件:MacbookPro13.32015early软件:Apache+MySQL+PHP7.1.8编辑器:SublimeText三实验内容及要求1显示一个图书售卖界面,主要包括一下内容(1)HTML的标题为“Welcometobookseller”。(2)页面内容第一行黑体显示“Youarewelcome”。(3)标签提示“pleaseinputyourname”,并创建输入框。(4)标签提示“pleaseinputyouraddress”,并创建输入框。(5)标签提示“pleaseinputyourzip”,并创建输入框。(6)黑体显示“pleasefillinthequantityfieldofthefollowingform”。(7)表格分成四列,分别是“book”,“publisher”,“price”,“quantity”,其中包含的信息如表格所示表4.1图书样表bookpublisherpricequantityWebtechnologySpringerpress$5.0mathematicsACMpress$6.2principleofOSSciencepress$10TheoryofmatrixHigheducationpress$7.8(8)quantity采用输入框输入。(9)显示“paymentmethod”(10)用单选按钮显示四个支付方式选项“cash”,“cheque”,“creditcard”。(11)显示两个标准按钮,“submit”按钮和“reset”按钮。2当用户输入完各个内容并按下“submit”按钮后,通过脚本生成新的HTML页面。其中包含以下内容(1)customername(2)customeraddress(3)customerzip(4)以表格形式显示订购图书信息,包含四列“book”,“publisher”,“price”,“totalcost”,其中totalcost通过脚本动态计算生成。未购买的图书不显示。(5)计算并显示“××hasbought××books”。(××分别指代客户名字和购买书的数量)(6)计算并显示“××paid××”。(这里××指代客户名字和总金额数)(7)根据用户的选择显示“paidby××”。(这里×指代用户选择的支付方式)3将用户购买信息存入到文件中,每个客户包含三行信息,即2中的(5)(6)(7)三句话。如果用户按的是“重置”按钮,则清除所有的输入信息。四实验过程1编写index.html,主要包括一下内容(1)采用HTML的head表示。headtitleWelcometobookseller/title/head(2)采用h1标签。h1Youarewekcome!/h1(3)(4)(5)采用tr/tr中嵌套td/td,td/td中嵌套input标签实现。(7)表格采用table标签实现。tableborder=1pxpadding=1pxtrthbook/ththpublisher/ththprice/ththquantity/th/trtrtdWebtechnology/tdtdSpringPress/tdtd$5.0/tdtdinputtype=textname=WTsize=30//td/trtrtdMathmatics/tdtdACMPress/tdtd$6.2/tdtdinputtype=textname=Masize=30//td/trtrtdPrincipleofOS/tdtdSciencePress/tdtd$10/tdtdinputtype=textname=POsize=30//td/trtrtdTheoryofMatrix/tdtdHighEducationPress/tdtd$7.8/tdtdinputtype=textname=TMsize=30//td/tr/table(8)输入框采用input。pPleaseinputyourname:/pinputtype=textname=Cnamesize=30/pPleaseinputyouraddress:/pinputtype=textname=Caddresssize=30/pPleaseinputyourzip:/pinputtype=textname=Czipsize=30/(10)用inputtype=”radio”实现。inputtype=radioname=paymentvalue=cashchecked=checkedCashbrinputtype=radioname=paymentvalue=chequeChequebrinputtype=radioname=paymentvalue=creditcardCreditCardbr(11)用inputtype=”submit”和inputtype=”reset”实现。inputtype=submitvalue=Submitinputtype=resetname=Reset2编写main.php,采用一下技术步骤(1)(2)(3)用户的输入值采用PHP脚本的$_POST函数获取。$Name=$_POST[Cname];$Address=$_POST[Caddress];$Zip=$_POST[Czip];$WebTechnology=$_POST[WT];$Mathmatic=$_POST[Ma];$PrincipleOfOS=$_POST[PO];$TheotyOfMatrix=$_POST[TM];$Payment=$_POST[payment];(4)数量通过$_POST函数获取,动态计算生成。if($WebTechnology==)$WebTechnology=0;if($Mathmatic==)$Mathmatic=0;if($PrincipleOfOS==)$PrincipleOfOS=0;if($TheotyOfMatrix==)$TheotyOfMatrix=0;$WT_cost=5.0*$WebTechnology;$Ma_cost=6.2*$Mathmatic;$PO_cost=10*$PrincipleOfOS;$TM_cost=7.8*$TheotyOfMatrix;$total_price=$WT_cost+$Ma_cost+$PO_cost+$TM_cost;$total_items=$WebTechnology+$Mathmatic+$PrincipleOfOS+$TheotyOfMatrix;(5)(6)(7)print或者printf显示。?phpprint$Namehasbought$total_itemsbooks.;?br?phpprint$Namepaid$total_pricebooks.;?br?phpprintpaidby$Payment.;?五实验结果界面显示实验结果分析与体会写了两年的代码,第一次感觉到php调试非常不容易,除了个别的就没有出错。我在实验中将form的位置调错导致了name、address和zip的变量无法相互传递,刚开始以为是print的问题,结果换成了echo也没有效果,最后幸运的是发现了问题所在。还有一个就是php的语法问题吧,忘记分隔号了,然后在mamp上运行的结果就是无法显示该页面error500,所以写php时应该格外小心变量和符号,当你写C++或者Java的时候IDE会提醒你写错了,但是写php用文本编辑的时候和少提醒你这种错误。