$_GET : ($_GET 是通过 URL 参数传递到当前脚本的变量数组。)
<!-------html------->
<!--在这里设置传输数据的方式-->
<form action="get.php" method="get">
<label>
<b>姓名:</b>
<input type="text" name="name">
</label>
<label>
<b>密码:</b>
<input type="password" name="password">
</label>
<button id="sub">登录</button>
</form>
<!-------对应的php------->
<?php
//$_GET后面加上中括号,将username作为字符串放在中括号里面,就得到了表单里面的<input type="text" name="name"> 的值
$n = $_GET['name'];
echo $n.'<br />';
//$_GET['password'] 得到表单<input type="password" name="password"> 的值
$pwd = $_GET['password'];
echo $pwd.'<br />';
?>
在get情况下, 表单传输的内容是可见的,会显示在URL地址中:
GET 对所发送信息的数量也有限制。限制在大于 2000 个字符/ 2KB。不过,由于变量显示在 URL 中,也是有它的方便之处的,具体看项目需求了。
$_POST : ($_POST 是通过 HTTP POST 传递到当前脚本的变量数组。)
<!-------html------->
<!--在这里设置传输数据的方式-->
<form action="post.php" method="post">
<label>
<b>姓名:</b>
<input type="text" name="name">
</label>
<label>
<b>密码:</b>
<input type="password" name="password">
</label>
<button id="sub">登录</button>
</form>
<!-------对应的php------->
<?php
$n = $_POST['name'];
echo $n.'<br />';
$pwd = $_POST['password'];
echo $pwd.'<br />';
?>
在post情况下, 表单传输的内容是不可见的,它的数据会被嵌入 HTTP 请求的主体中,地址栏中不会存在:
post 对所发送信息的数量也无限制。并且支持高阶功能,比如在向服务器上传文件时进行 multi-part 二进制输入。
$_REQUEST :
<!--表单中无论写成get、或者post都可以接收-->
<form action="request.php" method="get"></form>
<?php
$n = $_REQUEST['name'];
echo $n.'<br />';
$pwd = $_REQUEST['password'];
echo $pwd.'<br />';
?>
$_REQUEST虽然同时具用$_POST $_GET的功能, 但是$_REQUEST 会比较慢,在某些情况下有时候可能会给程序造成一些漏洞,不是很推荐使用的;
以上三种都属于php 的超级全局变量
PHP中预定义了几个超级全局变量(superglobals) ,这意味着它们在一个脚本的全部作用域中都可用。 你不需要特别说明,就可以在函数及类中使用。