php可增弹出框中怎样传输值,PHP数据传输

浏览器如何给服务器传输数据?

表单传值

增加一对form标签,将一些需要提交的数据,在form使用表单元素(input,select,textarea)

a)post传值:数据以post形式传输

b)get传值:将数据绑定到URL(名字=值)

服务器接收数据

get接收

$_GET,接收get方式提交的数据(URL传值),将浏览器提交的数据的名字作为一个数组的下标,值作为对应下标的元素值

$_GET[‘name’] = ‘张三’;

$_GET[‘age’] = 18;

get表单提交

b0abd0686b1fd02a8bc0200842737657.png

URL直接提交

adbcb198fb2185ae7f7128eb3d2ce2ce.png

post接收

$_POST,接收post方式提交的数据(form表单)

$_POST[‘name’]

$_POST[‘age’]

post表单提交

38fb0d689c86c91f7c0ae57ba17ed4a2.png

注意:html提交数组必须要有表单名字即name字段

fa16f9ec6ee7609721f1a657648b62ea.png

GET和POST的区别

1.表单对应的提交方式区别:METHOD=“GET/POST”

2.数据提交过程区别:GET将所有的数据拼接到URL(name=值&name2=值2…),POST提交的数据是看不到的

3.GET方式不安全,POST方式相对安全

4.GET方式传输数据,数据量小(2KB),post方式基本无限制(8M)

5.GET提交数据效率比POST要高

如何选择表单提交方式?

1.如果数据安全性要求高:使用post提交

2.如果数据量比较大,使用post提交

checkbox提交数据

爱好:篮球,足球,羽毛球,乒乓球,网球,台球…

同名checkbox提交数据

a4ad97bb19722a82bd03623449d31872.png

以上就出现了一个问题,checkbox的数据不能正确被服务器所接收。

因为PHP会将中括号当做数组的元素来对待,所以只需要在浏览器传递数据的过程中,给name增加一个中括号,让PHP在解析的时候,当做数组处理,从而将多个checkbox的值保存到一个数组中。

5e338a3bb10b18aea1ab6bc4722481b4.png

保存checkbox数据

因为checkbox往往是多选,PHP最终接收的数据会形成一个数组,但是数组不能存储,需要转化成字符串才能存储。所以,将爱好转换成字符串保存到数据库。

implode:将数组元素变成字符串

8d75c8e9e5eb4ba5dd04a799b72753e9.png

checkbox数据显示

将用户之前提交的,选中的数据,在用户进入之后,能够自动勾选上。

1.如何让checkbox被选中?

checkbox有一个checked属性,一旦某个checkbox拥有该属性,那么就会被勾选上

db34e1a6172653f319c39979b55f8b5f.png

2.如何通过用之前保存的提交的数据来判断出来到底哪个checkbox需要被选中?

a)将用户选中的checkbox变成数组

b)判断当前的checkbox的值,是否在数组中:in_array(),判断当前元素是否在数组中,如果存在返回TRUE,否则返回FALSE

7899c5108542114593df3d2a189d50c7.png

数据传输方式

字符数据传输方式

普通的数据传输都是基于此方式。

二进制格式传输

文件的传输:图片,普通文件

文件上传

概念:从一台电脑上,将文件传输到另外一台电脑上。

web:从客户端机器(用户)上传到服务端机器。

get或者post方式不能直接进行二进制文件的传输。get是不能传输二进制文件,post需要搭配一个属性才能进行文件传输。

文件上传分为两个步骤:

1.客户端用户上传

a)增加文件上传的表单域

b)用户选择上传文件

c)点击上传,将文件发送给服务器

a175b0c8075ae50406f3c4dffc39d5c5.png

2.服务端接收

form表单使用post方式提交数据,因此使用post接收数据:接收到的是文件的名字

1c2a3c83aec678184bf71e038e2f538c.png

文件上传必须要在服务器端先开启文件上传的功能。

9c3c89689f28efb6183ba489af4b4016.png

修改配置

文件上传的临时路径给更换:d:/server/tmp

6702cb5c6fb33d1ba58e250e3d321d3f.png

post默认提交字符流数据,不能提交二进制数据,如果需要提交二进制数据,需要给表单额外增加一个属性:enctype=”multipart/form-data”

41448563e43b5b2c7cedca2a50debcf5.png

文件上传到服务器的时候,先存放在临时目录里。PHP会用一组变量来保存临时文件。当脚本执行结束,PHP会释放全部的所占内存,因此文件这部分信息都会被操作系统回收,从而看不到临时文件,最终也没有实现文件的上传。

文件上传原理

e482faccb1ec7f71be69a44ce31886e6.png

查看上传文件

$_FILES

4763a968b3431dea8d2a6ef34faffe0a.png

验证文件合法性

只需要验证文件信息里的error信息,只要为0表示没有任何错误。

文件上传错误

d53e1fddfb91532997d35536960802e4.png

验证代码

6420f1268bb5cca498922185a93bc53e.png

移动临时文件

PHP提供了两个函数来实现文件的移动

move_uploaded_file:将文件直接移动到目标路径,不会保留原文件

copy:将文件复制到目标路径,会保留原文件

ce98af786021405832490f5fbffc6f17.png

封装上传文件函数

ini_get:通过配置项,获取php.ini中对应配置项的值

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值