在PHP中,预定义变量“$_REQUEST”可以用于获取from表单通过POST或者GET方式所提交的数据,也可以用于获取COOKIE信息;它是一个数组,包含了“$_GET”,“$_POST”和“$_COOKIE”的所有信息。
本教程操作环境:windows7系统、PHP7.1版、DELL G3电脑
PHP 预定义变量$_REQUEST
在实际开发过程中,我们不知道 form 表单通过哪种方式提交数据时,该怎么获取数据呢?
PHP 中提供了一个 $_REQUEST 全局变量,它是一个包含了 $_POST、$_GET 和 $_COOKIE 的数组,数组结构与 $_POST 和 $_GET 类似。
也就是说不管是使用 POST 还是使用 GET 方式提交的数据,都可以使用 $_REQUEST 来获取,甚至可以使用 $_REQUEST 来获取 COOKIE 的信息。在 PHP5.3 中引入 request_order 属性,我们可以通过在 PHP.ini 配置文件中修改 request_order 属性的值,来控制 $_REQUEST 中包含的内容。
request_order 属性的值可以是 G、P 和 C 这三个大写的英文字母,它们分别代表 GET、POST 和 COOKIE。默认情况下 request_order 属性的默认值为request_order=GP,并不包含 C,也就是说 $_REQUEST 中并不包含 COOKIE 的信息,如果我们希望 $_REQUEST 中包含 COOKIE 的话,需要将其修改为request_order=GPC
。
示例:
<!DOCTYPE html> <html> <head> <Meta charset=UTF-8> <title>表单提交</title> </head> <body> <p>------------------------get------------------------</p> <form action=index.PHP method=get> 姓名:<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> <p>------------------------post------------------------</p> <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($_REQUEST)){ echo '提交成功!<br><pre>'; var_dump($_REQUEST); } ?>
运行上面的代码,不论是选择哪种提交方式,使用 $_REQUEST 都可以成功接收到表单传递的信息。
推荐学习:《PHP教程》