读完本章节内容,您能得到以下知识:

  • 定义和使用数组
  • 创建表单,并验证表单提交的数组
  • 创建简单的数组结构
  • 操作简单数组的值
  • 遍历数组结构
  • 将表单数据存入数组
  • 存入数组之前进行数据验证

# 2.1 为什么要用数组?从一个页面表单说起。

为什么要用到数组?因为业务逻辑,业务场景,不得不由你拿起数组,建造起有用的结构化数据,利用程序处理。

如果数据都单值存在变量内,写一段功能,用一堆变量,一堆处理,一堆转换,写代码哪还有什么乐趣?

先从一个简单的form说起。为了样式方便,直接使用Bootstrap的样式。写一个表单。

最终呈现出来的网页结果:

网页因为是自适应,就太宽了,所以使用移动端的样式。

我们设置form在提交的时候,目标地址是chapter2.1.php。接着创建该文件,用于接收form提交来的数据。提交数据的方法是post,所以提交的来的数据存在$_POST数组内。大家注意,又提了一次数组,这个是PHP封装好的数组,form表单的数据,在程序内展现方式,就是数组的键值对。chapter2.1.php文件代码如下:

var_dump

现在填写表单如下内容:

我们提交之后看到数据是这样的:

大家看到对应关系了吗?其实就是简单的,在form的input中,name=lastname,那么提现在PHP的访问上,就是$_POST['lastname']。其值就是你在input输入框内写入的值。

就是这么个简单的对应关系,至于中间经过多少变换,经过多少封装,数据怎么传出去,又是怎么被接收,又是如何绑定,这些复杂的中间环节,PHP都替你做好了!!!

开发的时候,有一个基本准则,就是“永远不要相信用户的输入”。

我们提供表单给用户使用,谁知道他们会输入一些什么稀奇古怪的玩意儿,如果程序不加处理就进行使用,或者直接入库,会给生产带来不少灾难的。

这不是危言耸听,比如常见的SQL注入,这种方式,就是从改造表单数据开始的,不老实的输入者,写入非法的字符串,从而给服务器带来危害,这都是血的教训。

下一章我们讲解一下,对输入的数据进行校验。

ajax提交form表单数据_[基础编程学习] [PHP7数组详解]:第2章 (1)从表单提交数据说起...相关推荐

  1. php 数组转对象_[基础编程学习] [PHP7数组详解]:第1章 (8)数组和对象

    # 1.14 数组 讲了7节了,终于说到重头戏了. 数组,将关联的数据,放在内存中. 举一个例子,比如说一个班级,有一个班级号,班级名,描述,房间号,教导员,班级人数.可以存到一个数组内,这样写: $ ...

  2. 开发环境 测试环境 定义_「PHP7数组详解」:第1章 环境搭建安装(一)

    本书所有内容,会在知乎.今日头条.微信公众号.简书同步推出. 通过第一章的,将学习到以下内容: 创建一个简单的PHP程序 条件判断语句的使用方法 循环语句for,while,loop的用户 函数的使用 ...

  3. 大数据第二阶段Python基础编程学习笔记(待完善)

    大数据第二阶段Python基础编程学习笔记(待完善) 第一章 Python基础语法 3.8 1-1Python概述 python基础部分: ●Python基础语法: 标识符,关键字,变量,判断循环.. ...

  4. R语言tidyr包gather()函数实战详解:数据收缩、从宽表到窄表

    R语言tidyr包gather()函数实战详解:数据收缩.从宽表到窄表 目录 R语言tidyr包gather()函数实战详解:数据收缩.从宽表到窄表 收缩两列数据

  5. 微信小程序_基础组件学习02

    微信小程序_基础组件学习02 swiper组件 swiper是滑块容器,也就是手机端的轮播图. swiper组件有两部分组成swiper和swiper-item. swiper-item需要放在swi ...

  6. [Python从零到壹] 八.数据库之MySQL和Sqlite基础知识及操作万字详解

    欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...

  7. 前端基础-HTML的的标签详解

    阅读目录 一.head内常用标签 二. HTML语义化 三. 字符实体 四. h系列标签 五. p标签 六. img标签 七. a标签 八. 列表标签 九. table标签 十. form标签 一. ...

  8. java jdbc 回滚_java_详解Java的JDBC API中事务的提交和回滚,如果JDBC连接是在自动提交模式 - phpStudy...

    详解Java的JDBC API中事务的提交和回滚 如果JDBC连接是在自动提交模式下,它在默认情况下,那么每个SQL语句都是在其完成时提交到数据库. 这可能是对简单的应用程序,但有三个原因,你可能想关 ...

  9. Keras深度学习实战(1)——神经网络基础与模型训练过程详解

    Keras深度学习实战(1)--神经网络基础与模型训练过程详解 0. 前言 1. 神经网络基础 1.1 简单神经网络的架构 1.2 神经网络的训练 1.3 神经网络的应用 2. 从零开始构建前向传播 ...

最新文章

  1. 开始启动OPNsense的汉化工作
  2. java异常处理的throw和throws的区别
  3. C# addin 开发心得记录
  4. Red hat linux 下装mysql5问题总结
  5. mysql 执行报错及解决方法 Multi-statement transaction required more than ‘max_binlog_cache_size‘
  6. C语言试题八十之统计单词个数
  7. Redis详解(三)
  8. mysql 索引_MySQL之索引
  9. MTK驱动开发(21)---camera基础知识2
  10. ASP.NET Core 2.1 : 十.升级现有Core2.0 项目到2.1
  11. 太赞了!超炫的页面切换动画效果【附源码下载】
  12. Jquery—JQuery对select的操作(01)
  13. XNA Game Studio 2.0安装问题,崩溃了
  14. 最新C语言编程软件推荐(2021整理)
  15. 【软考系统架构设计师】2011年下系统架构师综合知识历年真题
  16. 2022年第十三届蓝桥杯大赛软件类决赛C/C++大学B组C题卡牌
  17. 贝壳找房:如何基于 Apache APISIX 搭建网关
  18. 高级Spring之Scope 详解
  19. 安装r 源代码 linux,在RStudio中从源代码安装R软件包时遇到问题-Ubuntu 16.04
  20. JavaScript中事件回顾

热门文章

  1. Java之JVM的内存分配策略
  2. Python2和python3字符编码的区别
  3. Windows批处理脚本%1和%1%有区别吗?
  4. 手机python代码阅读_教你阅读Python开源项目代码!
  5. 用python3做学生管理系统_详解用python实现基本的学生管理系统(文件存储版)(python3)...
  6. 微型计算机总线不包括,微型计算机总线不包括( )。
  7. 华为服务器MLC硬盘ID号,RH2288H RH5885H V3 3.5寸 SAS SATA华为服务器硬盘架子 支架
  8. 关于linux文件挂载(一)
  9. 【深度学习】深度学习安防的探索与实践
  10. python【数据结构与算法】选数问题(指定值求和——递归)