前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PHP-表单提交数据的两种方式

PHP-表单提交数据的两种方式

作者头像
cwl_java
发布2020-03-26 13:02:57
2K0
发布2020-03-26 13:02:57
举报
文章被收录于专栏:cwl_Javacwl_Java

1.3 表单提交数据的两种方式

1.3.1 两种方式

1、get

2、post

代码语言:javascript
复制
<form method="post" action=""></form>
<form method="get" action=""></form>
1.3.2 区别

1、外观上看

​ get提交在地址上可以看到参数

在这里插入图片描述
在这里插入图片描述

​ post提交在地址栏上看不到参数

在这里插入图片描述
在这里插入图片描述

2、安全性

​ get不安全

​ post安全

3、提交原理

​ get提交是参数一个一个的提交

​ post提交是所有参数作为一个整体一起提交

4、提交数据大小

​ get提交一般不超过255个字节

​ post提交的大小取决于服务器

代码语言:javascript
复制
// 在php.ini中,可以配置post提交的大小
post_max_size = 8M

5、灵活性

​ get很灵活,只要有页面的跳转就可以传递参数

​ post不灵活,post提交需要有表单的参与

代码语言:javascript
复制
1、 html跳转
   <a href="index.php?name=tom&age=20">跳转</a>

2、JS跳转
<script type="text/javascript">
	location.href='index.php?name=tom&age=20';
	location.assign('index.php?name=tom&age=20');
	location.replace('index.php?name=tom&age=20');
</script>

3、PHP跳转
header('location:index.php?name=tom&age=22')

小结:

GET

POST

外观上

在地址上看到传递的参数和值

地址栏上看不到数据

提交数据大小

提交少量数据,不同的浏览器最大值不一样,IE是255个字符

提交大量数据,可以通过更改php.ini配置文件来设置post提交数据的最大值

安全性

提交原理

提交的数据和数据之间在独立的

将提交的数据变成XML格式提交

灵活性

很灵活,只要有页面的跳转就可以get传递数据

不灵活

1.4 服务器接受数据的三种方式

通过名字获取名字对应的值

代码语言:javascript
复制
$_POST:数组类型,保存的POST提交的值
$_GET:数组类型,保存的GET提交的值
$_REQUEST:数组类型,保存的GET和POST提交的值

例题:

HTML页面

代码语言:javascript
复制
<body>
<!--表单提交数据-->
<form method="get" action="./2-demo2.php">
	语文: <input type="text" name="ch"> <br />
	数学: <input type="text" name="math"> <br />
	<input type="submit" name="button" value="提交"> <br><br>
</form>
<!--超链接提交数据-->
<a href="2-demo2.php?ch=77&math=88">跳转</a> <br><br>
<!--js提交数据-->
<input type="button" value="点击" onclick="location.href='2-demo2.php?ch=66&math=55'"> <br><br>

<input type="button" value="点击" onclick="location.assign('2-demo2.php?ch=11&math=22')">
</body>

PHP页面

代码语言:javascript
复制
<?php
//post数组中不为空
if(!empty($_POST)) {
	echo '这是post提交的数据<br>';
	echo '语文:'.$_POST['ch'],'<br>';
	echo '数学:'.$_POST['math'],'<br>';
}
echo '<hr>';
//获取get提交的数据
if(!empty($_GET)){
	echo '这是get提交的数据<br>';
	echo '语文:'.$_GET['ch'],'<br>';
	echo '数学:'.$_GET['math'],'<br>';
}
echo '<hr>';
//既能获取get又能获取post提交的数据
echo $_REQUEST['ch'],'<br>';
echo $_REQUEST['math'];

思考题

在一个请求中,既有get又有post,get和post传递的名字是一样的,这时候通过$_REQUET获取的数据是什么?

答:结果取决于配置文件

代码语言:javascript
复制
request_order = "GP"  # 先获取GET,在获取POST值

例题

代码语言:javascript
复制
<?php
if(!empty($_POST)){
	echo '姓名:'.$_REQUEST['username'],'<br>';
}
?>
<form method="post" action="?username=berry">
	姓名: <input type="text" name="username"><br />
	<input type="submit" name="button" value="提交">
</form>
分析:先获取GET的username,再获取post的username,后面的将前面的值覆盖

小结:

1、在开发的时候,如果明确是post提交就使用$_POST获取,如果明确get提交就用$_GET获取

2、request获取效率低,尽可能不要使用,除非提交的类型不确定的情况下才使用。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-03-25 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.3 表单提交数据的两种方式
    • 1.3.1 两种方式
      • 1.3.2 区别
      • 1.4 服务器接受数据的三种方式
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档