PHP数据传输

PHP数据传输,第1张

概述浏览器如何给服务器传输数据?<br/>表单传值增加一对form标签,将一些需要提交的数据,在form使用表单元素(input,select,textarea) a)post传值:数据以post形式传输 <form method=”POST” action=”?”> <input type=”text” name=”name” /&gt...

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

<br/>

表单传值

增加一对form标签,将一些需要提交的数据,在form使用表单元素(input,select,textarea)
a)post传值:数据以post形式传输
   <form method=”POST” action=”?”>
   <input type=”text” name=”name” />
    <input type=”text” name=”age”/>
    <input type=”submit” value=”提交”/>
   </form>
b)get传值:将数据绑定到URL(名字=值)

<br/>

服务器接收数据

get接收
$_GET,接收get方式提交的数据(URL传值),将浏览器提交的数据的名字作为一个数组的下标,值作为对应下标的元素值
  $_GET[‘name’] = ‘张三’;
  $_GET[‘age’] = 18;
  
get表单提交

URL直接提交

<br/>
post接收
$_POST,接收post方式提交的数据(form表单)
   $_POST[‘name’]
   $_POST[‘age’]
  
post表单提交

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

<br/>

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提交

<br/>

checkBox提交数据

爱好:篮球,足球,羽毛球,乒乓球,网球,台球…
<form>
<input type=”checkBox” name=”爱好” value=”篮球” />
<input type=”checkBox” name=”爱好” value=”足球” />
<input type=”checkBox” name=”爱好” value=”羽毛球” />
<input type=”checkBox” name=”爱好” value=”乒乓球” />
<input type=”checkBox” name=”爱好” value=”网球” />
<input type=”checkBox” name=”爱好” value=”台球” />
</form>

同名checkBox提交数据

以上就出现了一个问题,checkBox的数据不能正确被服务器所接收。
因为PHP会将中括号当做数组的元素来对待,所以只需要在浏览器传递数据的过程中,给name增加一个中括号,让PHP在解析的时候,当做数组处理,从而将多个checkBox的值保存到一个数组中。


保存checkBox数据

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


checkBox数据显示

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

1.如何让checkBox被选中?
checkBox有一个checked属性,一旦某个checkBox拥有该属性,那么就会被勾选上

2.如何通过用之前保存的提交的数据来判断出来到底哪个checkBox需要被选中?
a)将用户选中的checkBox变成数组
b)判断当前的checkBox的值,是否在数组中:in_array(),判断当前元素是否在数组中,如果存在返回TRUE,否则返回FALSE


数据传输方式

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

二进制格式传输
文件的传输:图片,普通文件


文件上传

概念:从一台电脑上,将文件传输到另外一台电脑上。
web:从客户端机器(用户)上传到服务端机器。

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

文件上传分为两个步骤:
1.客户端用户上传
  a)增加文件上传的表单域
  b)用户选择上传文件
  c)点击上传,将文件发送给服务器

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

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

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

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

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


文件上传原理


查看上传文件

$_fileS


验证文件合法性

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

验证代码


移动临时文件

PHP提供了两个函数来实现文件的移动
move_uploaded_file:将文件直接移动到目标路径,不会保留原文件
copy:将文件复制到目标路径,会保留原文件


封装上传文件函数

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

总结

以上是内存溢出为你收集整理的PHP数据传输全部内容,希望文章能够帮你解决PHP数据传输所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/999301.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存