在 PHP 中使用 get 和 post 两种方法接收来自 form 表单的值,在 form 表单中可以定义 PHP 的接收方式和接收地址。
get 和 post 方法主要有以下几点区别。
建议在传输的数据包含机密信息时用 post 数据提交方式,在做数据查询时用 get 方式,在做数据添加、修改或删除时用 post 方式。
在 form 表单中,action 属性定义提交表单的地址,method 属性定义提交的方法,例如:
- <form action="user.php" method="post">
- Username: <input type="text" name="user">
- Password: <input type="password" name="pwd">
- Birthday: <input type="date" name="bday">
- <input type="radio" name="sex" value="male">Male
- <input type="radio" name="sex" value="female">Female
- <!-- checkbox的name须使用数组形式命名, 否则PHP只能接收到最后一个被选的值 -->
- <input type="checkbox" name="vehicle[]" value="Bike">bike
- <input type="checkbox" name="vehicle[]" value="Car">car
- <select name="car">
- <option value="volvo" >Volvo</option>
- <option value="saab" >Saab</option>
- <option value="mercedes" >Mercedes</option>
- <option value="audi" >Audi</option>
- </select>
- <input type="submit" value="Submit">
- </form>
代码中定义接收表单值的地址是 user.php,接收方式是 post,所以我们编写代码查看在 user.php 中都接收到了哪些数据。user.php 中的代码如下:
- <?php
- var_dump($_POST);
- ?>
这里用 $_POST 全局变量接收来自表单提交的所有数据并打印出来,提交表单获得的结果示例如下:
注意,接收到的复选框 vehicle 是一个数组。另外,$_POST 接收的值是一个以表单元素的 name 为键,以用户选择或输入的值为对应值的数组。
如果 form 中选择使用get方式上传数据,那么将本例中的 post 改为 get 即可。