PHP表单提交——$_POST[]和$_GET[]

今天小编给大家分享一篇关于$_POST[]$_GET[]的文章,在学习PHP表单的时候这两个变量是很重要的哦~

首先呢一起来看看post 和get吧

  • post和get是指:页面提交的两种方式
  • get:参数都体现在url上,可以用于翻页,简单查询,get只能接收2M以下的内容,所以有局限性,另外由于内容是可见的,安全性就下降了,
  • post:用于页面表单 提交,上传文件,这些操作。大小没有限制,也不会在浏览器的地址栏上显示。

废话不多说,进入正题吧

$_POST 变量

$_POST 变量是一个数组,内容是由 HTTP POST 方法发送的变量名称和值(即关联数组的键值对)。
$_POST 变量用于收集来自 method=”post” 的表单中的值。

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title></title>
    </head>
    <body>
<form action="http://127.0.0.1:8080/php7/hello.php" method="post">  //action表示表单提交的信息将交由名为hello.php的文件进行处理

Enter your name: <input type="text" name="name" />
Enter your age: <input type="text" name="age" />
<input type="submit" />
</form>

    </body>
</html>

下面是hello.php文件的代码 “hello.php” 文件现在可以通过 $_POST 变量来获取表单数据(请注意,表单域的名称会自动成为 $_POST 数组中的 ID 键)

<?php
header("content-type:text/html;charset=utf-8");
echo  $_POST["name"];	//可以输出form中标签的属性值   其中参数的name为键名
echo $_POST["age"];
?>

当然啦,上面这两段代码,也可以写在一起哦:

<?php
$p = isset($_POST["name"])? $_POST["name"]:""; //大家注意啦。这里是关键,如果没有这段代码,这个代码怕是要废了
if($p){
	echo $_POST["name"];	//可以输出form中标签的属性值  其中参数的name为键名
	echo $_POST["age"];
}else{
?>
<form action="" method="post"> 
	Enter your name: <input type="text" name="name" />
	Enter your age: <input type="text" name="age" />
<input type="submit"/>
</form>
<?php
}
?>

小编在这里提示一下大家,由于变量不显示在 URL 中,所以无法把页面加入书签。

$_GET 变量

  • $_GET 变量用于收集来自 method=”get” 的表单中的值,即浏览器url中可以看到的信息。比如在百度搜索“wordpress”的时候,请求的url就是http://www.baidu.com/s?ie=utf-8&bs=wordpress&f=8&rsv_bp=1&wd=wordpress&inputT=0,那么’?’后面的参数都是可以用 $_GET 获取,各个参数是以’&’作为分隔符的。

  • $_GET 变量是一个数组,内容是由 HTTP GET 方法发送的变量名称和值。
    从带有 GET 方法的表单发送的信息,对任何人都是可见的(会显示在浏览器的地址栏),并且对发送的信息量也有限制(最多 100 个字符),所以参数的长度不是无限的,但是基本都能满足我们的要求了。

<form action="hello.php" method="get">
Name: <input type="text" name="name" />
Age: <input type="text" name="age" />
<input type="submit" />
</form>

当用户点击提交按钮时,发送的 URL 会类似这样:

file:///E:/gradFour/test/hello.php?name=qianqian&age=22

“hello.php” 文件现在可以通过 $_GET 变量来获取表单数据了(请注意,表单域的名称会自动成为 $_GET 数组中的 ID 键)

 Welcome <?php echo $_GET["name"]; ?>.<br />
You are <?php echo $_GET["age"]; ?> years old!

如果你在 name 表单框中输入了Mike ,在 age 表单框中输入了23,那么显示的结果就是这样的

  Welcome Mike 
  You are 23 years old!

注意啦:在使用 $_GET 变量时,所有的变量名和值都会显示在 URL 中。所以在发送密码或其他敏感信息时,不应该使用这个方法。
不过,正因为变量显示在 URL 中,因此可以在收藏夹中收藏该页面。在某些情况下,这是很有用的。并且,HTTP GET 方法不适合大型的变量值;值是不能超过 100 个字符的。

总结:$_POST和$_GET的区别

1.前者可以在网址的栏目上是看不到传送的内容的,而后者是可以在网址的栏目是看到内容的
2.Get 方式需要使用 Request.QueryString 来取得变量的值;而 Post 方式通过 Request.Form 来访问提交的内容。
3.前者传输的内容的大小比较大,安全性比较高,执行效率稍微低一些;后者的上传大小比较小,安全性低,执行的效率会较高一些。
4.Get 方式提交数据,会带来安全问题,比如一个登陆页面,通过 Get 方式提交数据时,用户名和密码将出现在 URL 上,如果页面可以被缓存或者其他人可以访问客户这台机器,就可以从历史记录获得该用户的帐号和密码,所以表单提交建议使用 Post 方法;Post 方法提交的表单页面常见的问题是,该页面如果刷新的时候,会弹出一个对话框。
5.安全起见,一般的话建议使用 $_POST

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值