了解过 HTML 的同学都知道 form 表单中提交数据的方法有两种,分别是 POST 方法和 GET 方法。具体采用哪种方法提交表单数据则是由 form 表单的 method 属性值来决定的。
以 POST 方法为例,POST 方法不依赖于 URL,不会将传递的参数值显示在地址栏中。另外 POST 方法可以没有限制地传递数据到服务器,所有提交的信息在后台传输,用户在浏览器端是看不到这一过程的,安全性相对较高。所以,POST 方法比较适合用于发送一些重要的(如信用卡号)信息或者比较大量的数据到服务器。
提示:默认情况下 POST 方法的发送信息最大值为 8MB,后期可以通过修改 php.ini 配置文件中 post_max_size 的值进行更改。
而 PHP 的 $_POST 全局变量则是专门用于获取由 POST 请求发送的表单数据的。其数据结构是一个关联数组,数组的键名为表单元素 name 的值,数组的值为对应表单的值。在实际程序开发过程中,当 form 表单的 method 属性指定使用 POST 方式进行数据传递时,我们就应该使用 $_POST 来获取比表单的数据。
$_POST 全局变量的使用与普通数组是一样,可以直接以 $_POST['键值'] 的形式访问其中的数据,下面通过一个简单的示例来演示一下。
【示例】使用 $_POST 全局变量获取 form 表单中传输的数据。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>城东书院</title>
</head>
<body>
<form action="index.php" method="post">
姓名:<input type="text" name="name" placeholder="请输入姓名"><br>
性别:<input type="radio" name="sex" value="男">男
<input type="radio" name="sex" value="女">女<br>
爱好:<input type="checkbox" name="hobby[]" value="read">阅读
<input type="checkbox" name="hobby[]" value="travel">旅游
<input type="checkbox" name="hobby[]" value="sport">运动
<input type="checkbox" name="hobby[]" value="internet">上网<br>
职业:<select name="job">
<option value="coder">程序员</option>
<option value="teacher">教师</option>
<option value="doctor">医生</option>
<option value="other">其它</option>
</select><br>
<input type="submit" value="提交">  <input type="reset" value="重置">
</form>
</body>
</html>
<?php
if(!empty($_POST)){
echo '提交成功!<br><pre>';
var_dump($_POST);
}
?>
运行上面的代码,并在输入框中填入合适的信息,点击提交按钮即可将表单中填入的信息传递给 PHP 程序。然后 PHP 程序可以通过 $_POST 来接收表单中传递信息,并对这些信息进行处理,比如可以将数据保存到数据库或者输出到浏览器等等,详细代码就不演示了,大家可以自行动手尝试一下。