简书     https://www.jianshu.com/p/5a27a9706a5d

目   录

1 实践目的与任务

2 使用的工具、环境配置、知识点等

3 实践内容及要求

(1)配置phpStudy,测试Web服务器

(2)在Web服务器下编写包含form标签的完整网页

(3)在Web服务器下编写文件calculate.php

4 需求分析和功能描述

4.1 数据结构表示与存储需求分析

4.2 操作与功能分析

5 系统总体设计

5.1  输入与流程顺序

5.2  系统功能模块设计

5.3  数据结构和流程设计

6 详细设计和实现过程

6.1  学生信息等结构设计与描述

6.2 主要函数设计

7 功能展示

8 实践收获

9  附录

9.1 关键性代码


1 实践目的与任务

(1)PHP编辑编译环境安装与配置;

(2)PHP变量定义、语法、语句的使用;

(3)PHP页面的编写;

(4)PHP页面提交数据的采集、处理;

2 使用的工具、环境配置、知识点等

(1)Eclipse for PHP等PHP编辑工具、phpStudy等网页运行集成环境;

(2)安装以上软件的计算机;

3 实践内容及要求

(1)配置phpStudy,测试Web服务器

配置phpStudy测试Web服务器正常运行,配置Eclipse for PHP编辑环境,

使用phpStudy环境在Eclipse for PHP上运行调试PHP代码。调试配置参考如下:

[XDebug]

zend_extension="C:\phpStudy\PHPTutorial\php\php-5.4.45\ext\php_xdebug.dll"

;函数调用跟踪信息输出文件目录,默认值为/tmp

xdebug.trace_output_dir="C:\phpStudy\PHPTutorial\tmp\xdebug"

xdebug.auto_trace = On

;性能分析文件的存放位置,默认值为/tmp

xdebug.profiler_output_dir="C:\phpStudy\PHPTutorial\tmp\xdebug"

xdebug.profiler_enable=On

;是否允许Xdebug跟踪函数参数,默认值为0

xdebug.collect_params = On

;是否允许Xdebug跟踪函数返回值,默认值为

xdebug.collect_return = On

;是否收集指定作用域中的变量信息,利用xdebug_get_declared_vars()函数,那么就需要开启该设置了

;xdebug.collect_vars = On

;在异常出现时甚至是该异常被捕捉也会显示其堆栈跟踪信息

xdebug.show_exception_trace = On

;远程调试设置

xdebug.remote_enable = On

xdebug.remote_host=localhost

xdebug.remote_port=9000

xdebug.remote_handler=dbgp

;任何运行情况下都开启调试

xdebug.remote_autostart = Off

(2)在Web服务器下编写包含form标签的完整网页

在Web服务器下编写包含如下form标签的完整网页input.html,输入多个十进制正整数:

<form action="calculate.php" method="post" enctype="multipart/form-data">

输入操作数:<br/>

数1:<input type="text" name="operands[]" value="输入运算数" /><br/>

数2:<input type="text" name="operands[]" value="输入运算数" /><br/>

数3:<input type="text" name="operands[]" value="输入运算数" /><br/>

数4:<input type="text" name="operands[]" value="输入运算数" /><br/>

数5:<input type="text" name="operands[]" value="输入运算数" /><br/>

提交按钮:

<input type="submit" name="submit1" value="普通提交按钮" />

<br/>

图片按钮:

<input type="image" name="submit2" src="http://www.google.cn/intl/zh-CN/images/logo.gif" height="40" />

<br/>

重置按钮:

<input type="reset" name="cancel" value="重新填写" />

</form>

(3)在Web服务器下编写文件calculate.php

在Web服务器下编写文件calculate.php,在其中能够获取浏览器端访问input.html页面时在form标签中提交的信息,

上传文件,并正确返回浏览器以下结果:数1的逆序,数2和数3的最小公倍数,数4的二进制,数5的十六进制;

4 需求分析和功能描述

4.1 数据结构表示与存储需求分析

用“指针”与“数组”来存储用户在form表单中提交的数据信息。

在input.html文件中,用数组来存储用户输入的5个数字信息,然后提交form表单后,用“指针”来存储数据信息。

用foreach(array as $value)来遍历数组比较方便,其功能如下:

foreach(array as $value)

使用该方法循环遍历给定的数组array,每次循环中,“当前指针”所指元素的“值”赋给变量$value,然后移动数组array“当前指针”,使“当前指针”指向下一个元素,周而复始,直至数组array最后一个元素,此时“当前指针”为空。

4.2 操作与功能分析

编写好input.html文件后,需要将用户输入的信息“传输”至calculate.php文件中,然后在calculate.php文件编写相关的代码,对数1、数2、数3、数4、数5进行操作。

5 系统总体设计

5.1  输入与流程顺序

用form表单及相关标签接收用户输入的信息。如,<input />标签,通过设置<input />标签中的name值,将用户输入的数据组成一个数组,然后统一提交至calculate.php文件中。

5.2  系统功能模块设计

系统功能有:处理用户输入的数据,如:返回数字1的逆序数、求数字2与数字3的最小公倍数、将数字4转化为二进制数字输出、将数字5转化为十六进制数字输出。重置表单信息、点击图片按钮提交表单。

表单按钮部分较为简单,直接设置<input />标签的相关属性就可以了。

数据处理部分较为困难,需要新建数组,然后逐个对数据进行处理。

5.3  数据结构和流程设计

在input.html文件中,用“数组”存储用户输入的数据;用户提交表单后,在calculate.php文件中用“链表”来存储数据。创建新数组,用来存储用户输入的数据,然后遍历新建数组,对数据进行处理。

6 详细设计和实现过程

(具体功能实现等,可自由添加其它内容、部分源代码等)

6.1  学生信息等结构设计与描述

(写出你所设计的数组或链表等其他形式的变量)

foreach ()函数   循环遍历给定的数组

implode() 函数  把数组元素组合为字符串。

array_reverse()函数以相反的元素顺序返回数组。

str_split()函数   把字符串分割到数组中。

max()函数      返回一个数组中的最大值,或者几个指定值中的最大值。

decbin()函数    把十进制数转换为二进制数。

dechex() 函数  把十进制转换为十六进制。

6.2 主要函数设计

(列出你所设计的函数声明语句,每个声明后需有注释,表明该函数功能)

foreach ()函数   循环遍历给定的数组

implode() 函数  把数组元素组合为字符串。

array_reverse()函数以相反的元素顺序返回数组。

str_split()函数   把字符串分割到数组中。

max()函数      返回一个数组中的最大值,或者几个指定值中的最大值。

decbin()函数    把十进制数转换为二进制数。

dechex() 函数  把十进制转换为十六进制。

7 功能展示

(功能展示图,说明等)

8 实践收获

此次实验,难度较大。在实验的过程中,收获了很多知识,解决了很多疑惑。在浏览器地址栏中输入文件所在位置,就可以运行此文件,感到PHP语言十分灵活。

在实验过程中,遇到的最大的困难就是:将form表单中的5个数据提交后,如何遍历数组,使得程序人员可以逐个对数据进行处理。困扰了我好长时间。参考课本98页对foreach语言结构的讲述以及127页具体运用foreach数据结构的代码,我还是没有想到逐个遍历数组的方法。在百度上搜寻了foreach语言结构的相关知识后,我渐渐对foreach语言结构有了更深的理解。foreach($_POST['operands']

as $a[]) {}语句,可以将数组中的数据元素逐个存放在一个新的数组中,非常容易遍历数组、对数组中的各个数据进行处理。

在实验中还有很多疑惑。比如,汉字乱码。为什么我在PHP文件中加入了“header("Content-Type:

text/html;charset=utf-8");”语句,依旧无法完全解决乱码问题?在我编写的其它PHP文件中,加入“header("Content-Type:

text/html;charset=utf-8");”语句后,乱码问题得到了很好的解决。在百度上搜了很多篇文章,都没有解决我的疑惑!我准备问问老师或同学们。

我认为我的程序还有很多可以改进的地方。例如,在calculate.php文件中对数组进行遍历的操作。我认为可以用for()循环对数组进行遍历。在for()循环语句中,加上限制条件,如:判断当前数字是数组的第几个元素,根据元素所处序号选择不同的操作方法对数据进行处理。我认为这样会令程序更加灵活、更具可读性。

此外,我认为还可以在用户输入数据的时候,对数据进行验证。验证用户所输入的内容是不是数字。这在一定程度上可以解决乱码的问题。

9  附录

9.1 关键性代码

(可加部分关键性代码,不超过3页;说明等)

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title>页面一:表单页面</title>
</head><body><form action="calculate.php" method="post" enctype="multipart/form-data">输入操作数:<br />数1:<input type="text" name="operands[]" value="输入运算数" /><br />数2:<input type="text" name="operands[]" value="输入运算数" /><br />数3:<input type="text" name="operands[]" value="输入运算数" /><br />数4:<input type="text" name="operands[]" value="输入运算数" /><br />数5:<input type="text" name="operands[]" value="输入运算数" /><br />上传文件:<input type="file" name="file" /><br />提交按钮:<input type="submit" name="submit1" value="普通提交按钮" /><br />图片按钮:<input type="image" name="submit2" src="http://www.google.cn/intl/zh-CN/images/logo.gif" height="40" /><br />重置按钮:<input type="reset" name="cancel" value="重新填写" /></form></body></html>
<!--
(2)在Web服务器下编写包含
如下form标签的完整网页input.html,
输入多个十进制正整数。
-->
<?phpheader("Content-Type: text/html;charset=utf-8");echo "您的表单已成功提交!!!<br/>";echo "数1、数2、数3、数4、数5,分别为:<br/>";foreach ($_POST['operands'] as $s) {echo $s." 、 ";}foreach ($_POST['operands'] as $a[]) {}echo "<br/> <br/>数1的逆序数 为:<br/>";echo implode(array_reverse( str_split($a[0],1) ));echo "<br/> <br/>数2和数3的最小公倍数 为:<br/>";for ($i = max($a[1],$a[2]); $i > 0; $i++) {if( $i % $a[1] == 0 && $i % $a[2] == 0) {echo $i;break;}}echo "<br/> <br/>数4的二进制 为:<br/>";echo decbin("$a[3]");echo "<br/> <br/>数5的十六进制 为:<br/>";echo dechex("$a[4]"),"<br/>";
?>

PHP-计算表单提交的数据相关推荐

  1. 表单提交对数据进行加密详解(RSA加密)

    一.使用背景 以前在做项目的时候就觉得表单直接明文提交非常不安全.有心之人只要稍加操作就能轻易获取用户的信息,这是非常可怕的事情,但又苦于不知道该如何加密,如何提高安全性. 后来慢慢接触到RSA,才知 ...

  2. php获取表单元素的值,PHP如何获取表单提交的数据

    PHP如何获取表单提交的数据 1.超全局数组变量:$_GET[] 描述:获取表单 method = "get" 提交的数据 举例:$username = $_GET["u ...

  3. form表单提交FormData数据

    代码见https://gitee.com/bladeandmaster/freemarkerDemo 1.第一种直接使用form表单的submit提交 2.第二种采用ajax提交,需要设置conten ...

  4. vue form表单提交动态数据

    项目vue-cli搭建 需求为:vue页面跳转至第三方的支付页面 操作流程为:点击确认按钮时得到得到第三方网页的url和参数信息,以form表单的post方式提交 尝试了N种方法,都不可以成功完成逻辑 ...

  5. 利用PHP HTML5 MySQL 将表单提交的数据写到数据库

    先来看一下我的这个简单的表单样式: 请忽略图下面的提示信息, 问题不大 看看关键代码: <form action="" method="post"> ...

  6. 从页面获取form表单提交的数据

    1 使用HttpServletRequest,方便灵活 页面代码,使用action提交一个表单,里边有球的id,球的主人,球的颜色,所在省份,区域 <form action="ball ...

  7. 在Servlet中处理表单提交的数据

    Servlet的主要功能是处理客户端的表单请求数据,在Servlet中首先对这些数据进行验证,可能会封装到JavaBean,接下来调用数据库的业务逻辑方法将数据保存或者进行其他操作,最后Servlet ...

  8. 获取表单提交的数据getParameter()方法

    请求对象:request  public String getParameter(String name);  通过request的getParameter(String name)方法获取  表单里 ...

  9. html表单转换文档代码,把HTML表单提交的数据转化成XML文件 (转)

    请输入您的通讯信息: 姓 名: 性 别: 地 址: 工作单位: 电 话: 电子: 然后编写ASP代码,遍历表单元素,并把输入的信息写进XML文件. processForm.asp: '-------- ...

最新文章

  1. 写了一个好玩的小软件, 监视鼠标以及键盘的动作, 全局钩子. HowTired
  2. 使用react、antd组件报错TypeError: _this.formRef.current.validateFields is not a function
  3. 容器大小_C++ 顺序容器基础知识总结
  4. 利用Python把四张图片按照顺序拼接起来
  5. No.1-Apache IoTDB 随笔 - Time Series DBMS 综述
  6. 求出数组中元素的总和_数组中所有元素的总和可被给定数K整除
  7. Horizon View 7 发布Win10桌面三:链接克隆桌面池配置
  8. bzoj4558[JLoi2016]方 容斥+count
  9. PageAdmin网站建设教程:仿58同城站群系统实现不同地区Ip跳转不同分站
  10. cc2530c语言编程库,cc2530程序设计实例之CC2530 RF部分使用—实现点对点收发
  11. 今日分享:js制作一个简单的新年倒计时
  12. 微机 —— 可编程并行接口芯片8255A 应用
  13. iOS UDID与UUID
  14. 《高等统计物理学》5:非平衡态统计物理初步
  15. Web开发者和设计师必须要知道的 iOS 8 十个变化
  16. 欧奈尔的杯柄形态理论(技术干货)
  17. delphi控件切图界面闪烁_「这个控件叫什么」系列之加载占位图+页面指示器
  18. 再获认可!人大金仓金融信创优秀解决方案推进我国数字金融高质量发展
  19. Django和Vue搭建前后端分离框架
  20. 黑科技之资源搜索网站

热门文章

  1. python哲学内容 多行胜于单行_Python3基础 __doc__ 单行与多行函数文档
  2. nfine框架 上传文件_网站服务器Nginx运行环境,后台文件上传超出Nginx的最大值...
  3. 二、LInux系统安装Java
  4. 非凸函数上,随机梯度下降能否收敛?能,但有条件,且比凸函数收敛更难
  5. NeurIPS 2021 | 港中文周博磊组:基于实例判别的数据高效生成模型
  6. 北京/上海内推 | 字节跳动AI Lab招聘NLP算法模型优化方向实习生
  7. 殊途同归的策略梯度与零阶优化
  8. 阿里巴巴淘系开源大型3D家具数据集(3D-FUTURE)推动3D家居智能研究
  9. ICLR 2020 | GAN是否真的判断出了数据的真假?
  10. 论文解读 | 基于正则化图神经网络的脑电情绪识别